Function at 0x4616cb
Capabilities:
Resolve function by parsing pe exports

Disassembly:
cmp byte [ebp - 1], 0
jne 0x473a62
cmp byte [ebp + 0xf], 0
jne 0x473a2d
mov ecx, dword [ebp - 0x34]
xor eax, eax
lea edx, [ebp + 0x17]
push edx
mov edx, dword [ebp - 0xc]
push edx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x18]
push edx
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x38]
push ecx
push eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], ecx
mov byte [ebp + 0x17], 0
call fcn.0040aced
cmp byte [ebp + 0x17], 0
jne 0x4739ff
lea ecx, [ebp - 0x60]
push ecx
lea ecx, [esi + 0x18]
call fcn.0042825a
add dword [ebp - 0x38], 1
mov edi, eax
adc dword [ebp - 0x34], 0
jmp 0x461992
push ebx
lea edx, [ebp - 0x40]
push edx
mov edx, dword [ebp - 0x24]
push 0
push edi
push edx
mov edx, dword [ebp - 0x44]
push 0
push edx
push eax
mov eax, dword [ebp - 0x28]
push eax
push eax
push ecx
lea ecx, [esi + 0x18]
call fcn.0040a957
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax + 0x40]
push 0
push ebx
push ecx
mov ecx, esi
call fcn.0040e25a
cmp dword [ebp - 0x10], 0
je 0x473b00
mov edx, dword [ebp - 0x14]
push ebx
push edx
mov ecx, esi
call fcn.0045da8d
jmp 0x473b00
push eax
mov ecx, esi
call fcn.004c4fb6
jmp 0x473b00
push ebp
mov ebp, esp
sub esp, 0x60
mov edx, dword [ebp + 0x1c]
push ebx
push esi
mov esi, ecx
mov ecx, edx
push edi
xor edi, edi
and ecx, 0x400
xor eax, eax
or eax, ecx
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], edi
mov byte [ebp - 1], 0
mov byte [ebp + 0x1f], 1
je 0x4737ac
and edx, 0x100
xor eax, eax
or eax, edx
mov byte [ebp - 2], 1
jne 0x461715
mov byte [ebp - 2], 0
mov eax, dword [ebp + 8]
mov ebx, dword [eax]
cmp byte [ebx + 0x4d], 0
mov dword [ebp - 8], ebx
mov byte [ebp - 3], 1
jne 0x463a2b
cmp dword [ebx + 0x50], edi
lea eax, [ebx + 0x50]
mov dword [ebp - 0x24], eax
je 0x4737b5
xor eax, eax
test al, al
sete dl
push edi
lea ecx, [esi + 0x18]
push edx
push 8
call fcn.0040298b
push eax
mov ecx, esi
mov dword [ebp - 0x10], eax
call fcn.0045f3ea
cmp dword [ebx + 0x48], edi
jne 0x4737da
mov eax, ebx
mov ecx, dword [eax + 0x44]
mov eax, dword [eax + 0x40]
push eax
mov dword [ebp - 0x1c], ecx
call fcn.0040b704
mov ebx, edx
mov edi, eax
and eax, 0xfffffff0
mov ecx, ebx
and ecx, 0xfffff7f7
mov edx, eax
or edx, ecx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], ebx
jne 0x4737f1
cmp byte [ebp + 0x10], 0
jne 0x47381c
mov eax, edi
and eax, 2
mov ecx, ebx
and ecx, 8
mov edx, eax
or edx, ecx
jne 0x47385d
mov eax, edi
and eax, 1
xor ecx, ecx
or eax, ecx
jne 0x4738b6
mov ecx, ebx
and ecx, 0x800
xor eax, eax
or eax, ecx
jne 0x4738d9
mov eax, edi
mov ecx, ebx
and eax, 0xf
and ecx, 8
or eax, ecx
jne 0x4617fc
xor ecx, ecx
cmp byte [ebp + 0xc], cl
mov eax, 4
je 0x473913
or edi, eax
or ebx, ecx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 3], 0
cmp byte [ebp + 0x1f], 0
je 0x46181b
mov eax, edi
and eax, 0x24002a2
mov ecx, ebx
and ecx, 0x808
mov edx, eax
or edx, ecx
jne 0x47391d
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x88]
test ecx, ecx
je 0x4619a6
cmp dword [ecx], 0
je 0x4619a6
mov eax, dword [esi + 0x84]
test eax, eax
je 0x4619bc
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + edx*4 - 4]
mov eax, dword [edx]
add eax, 0x64
push 0
push 0
push 0
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0
push ecx
mov ecx, esi
call fcn.0040a777
mov edi, eax
mov ecx, edi
mov dword [ebp - 0x20], eax
call fcn.00404030
mov ebx, eax
cmp byte [ebx + 0x40a8a0], 0
je 0x4619c4
mov ecx, edi
call fcn.00402805
test al, al
je 0x4619c4
mov ecx, edi
call fcn.00411a8b
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], ebx
mov byte [ebp + 0xf], 0
cmp byte [ebp + 0x14], 0
jne 0x473983
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x24]
test eax, eax
mov dword [ebp - 0x14], eax
je 0x46391d
lea ecx, [ecx]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov ecx, dword [eax]
cmp ecx, 0x1f
je 0x4618da
cmp ecx, 0x20
jne 0x473af1
cmp byte [eax + 0x2d], 0
mov dword [ebp + 0x1c], eax
jne 0x473b00
mov edi, eax
cmp dword [edi + 0x28], 0
mov edx, dword [edi + 0x24]
mov dword [ebp - 0x28], edx
jne 0x473996
cmp dword [edi + 0x30], 0
lea eax, [edi + 0x30]
je 0x4739ad
xor eax, eax
test al, al
sete cl
push 0
push ecx
push 0x11
lea ecx, [esi + 0x18]
call fcn.0040298b
mov edx, dword [ebp + 0x1c]
xor edi, edi
cmp dword [edx], 0x20
mov ebx, eax
mov dword [ebp + 0x14], edi
jne 0x45ca2d
xor eax, eax
cmp byte [ebp + 0xf], al
mov dword [ebp - 0x50], 2
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
jne 0x4739d5
lea ecx, [ebp + 0x13]
push ecx
lea edx, [ebp - 0x60]
push edx
mov edx, dword [ebp + 0x1c]
lea ecx, [ebp - 0xc]
push ecx
push eax
mov eax, dword [edx + 0x44]
push 1
push eax
mov ecx, esi
call fcn.0046158e
cmp byte [ebp + 0x13], 0
je 0x4739d8
lea ecx, [ebp - 0x60]
push ecx
lea ecx, [esi + 0x18]
call fcn.0042825a
mov edi, eax
mov eax, dword [ebp - 0x60]
add eax, 1
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x5c]
adc eax, 0
mov dword [ebp - 0x34], eax
mov edx, dword [ebp + 0x1c]
cmp byte [edx + 0x2c], 1
je 0x473ab1
xor eax, eax
jmp 0x473ab6
mov ecx, dword [esi + 0x14]
mov edi, dword [ecx + 0x12c]
mov dword [ebp - 0x20], edi
mov ebx, 8
jmp 0x461875
lea eax, [esi + 0x78]
jmp 0x461852
cmp byte [edi], 3
jne 0x47394b
jmp 0x473970
cmp dword [ebp - 0x3c], 0
je 0x473b16
push 0
push 0
lea ebx, [esi + 0x18]
push 0x10
mov ecx, ebx
call fcn.0040298b
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + 0x4ac]
mov edx, dword [ebp - 0xc]
push eax
lea eax, [ebp - 0x40]
push eax
push 0
push 0
push edx
push 1
push 0
push 0x40000004
push ecx
push ecx
push 0
mov ecx, ebx
call fcn.0040a957
mov eax, dword [ebp - 8]
add eax, 0x50
cmp dword [eax], 0
je 0x473b34
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x84]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [edx + ecx*4 - 4]
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp + 0x20]
push edi
push edx
mov edx, dword [ebp - 0x18]
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx + 0x54]
push 0
add eax, 4
push eax
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x2c]
push 0
push 0
push edx
mov edx, dword [esi + 0x3c]
or eax, 0x2000
push eax
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [esi + 0x10]
push 0
push ecx
mov ecx, dword [esi + 0x34]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
push eax
push 0
push ecx
call fcn.00463871
mov edx, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp + 0xc]
push edx
push eax
mov ecx, ebx
call fcn.0045a676
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
xor edx, edx
cmp byte [ebp - 3], dl
push 0
sete dl
mov dword [edi + 0x90], ecx
push edi
shl edx, 0x17
xor edx, dword [edi + 0x88]
and edx, 0x800000
xor dword [edi + 0x88], edx
mov ecx, dword [eax + 0x64]
push ecx
mov ecx, esi
call fcn.0040e25a
mov ecx, esi
call fcn.0045e47f
mov ecx, esi
call fcn.0045f220
mov edx, dword [ebp + 8]
push edi
push edx
mov ecx, esi
call fcn.0045da8d
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov byte [ebp + 0x1f], 0
jmp 0x461701
cmp dword [eax + 4], edi
jne 0x46173a
cmp dword [eax + 8], edi
jne 0x46173a
cmp dword [eax + 0xc], edi
jne 0x46173a
mov eax, 1
jmp 0x46173c
mov eax, dword [ebp - 0x24]
push eax
push 0x7704
push esi
call fcn.00463ce8
add esp, 0xc
jmp 0x461761
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x40]
push 0
push edx
push ecx
push eax
push 0x76bc
mov ecx, esi
call fcn.0045c894
and edi, 0xf
and ebx, 0x808
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], ebx
jmp 0x461791
mov eax, edi
and eax, 0x4002af
mov ecx, ebx
and ecx, 8
mov edx, eax
or edx, ecx
je 0x46179b
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x40]
push 0
push edx
push ecx
push eax
push 0x795d
mov ecx, esi
call fcn.0045c894
and edi, 0xffbffd50
and ebx, 0xfffffff7
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], ebx
jmp 0x46179b
cmp byte [ebp + 0xc], 0
je 0x473885
cmp byte [ebp + 0x1f], 0
je 0x473872
mov dword [ebp + 0x10], 0x76e4
jmp 0x47388c
cmp byte [ebp - 2], 0
je 0x4617af
mov dword [ebp + 0x10], 0x76e3
jmp 0x47388c
mov dword [ebp + 0x10], 0x7947
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x40]
push 0
push edx
push ecx
push eax
mov eax, dword [ebp + 0x10]
push eax
mov ecx, esi
call fcn.0045c894
and edi, 0xfffffffd
and ebx, 0xfffffff7
or edi, 4
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], ebx
jmp 0x4617af
cmp byte [ebp + 0xc], cl
jne 0x4617be
mov eax, dword [ebp - 8]
add eax, 0x50
push eax
push 0x7971
push esi
call fcn.00463ce8
add esp, 0xc
jmp 0x4617be
cmp byte [ebp + 0xc], 0
jne 0x4617d0
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx + 0x11c]
mov eax, dword [ebp - 8]
push edx
add eax, 0x50
push eax
push 0x7dc8
push esi
call fcn.00463ce8
add esp, 0x10
and ebx, 0xfffff7ff
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], ebx
jmp 0x4617d0
mov eax, 8
jmp 0x4617ee
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x40]
push 0
push edx
push ecx
push eax
push 0x780f
mov ecx, esi
call fcn.0045c894
and edi, 0xfdbffd5d
and ebx, 0xfffff7f7
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], ebx
jmp 0x46181b
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x88]
add eax, 4
push eax
push 0x77ba
push esi
call fcn.00463ce8
add esp, 0xc
call fcn.0044ab76
mov edi, eax
mov dword [ebp - 0x20], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x18], 8
mov byte [ebp + 0xf], 1
jmp 0x4618a2
mov ecx, dword [ebp - 0x10]
push ecx
mov ecx, esi
call fcn.004c4ad8
mov dword [ebp - 0x24], eax
jmp 0x4618b2
lea eax, [edi + 0x30]
push eax
push 0x7704
push esi
call fcn.00463ce8
add esp, 0xc
jmp 0x4618f9
cmp dword [eax + 4], 0
jne 0x461906
cmp dword [eax + 8], 0
jne 0x461906
cmp dword [eax + 0xc], 0
jne 0x461906
mov eax, 1
jmp 0x461908
mov byte [ebp + 0x13], al
mov ecx, dword [ebp + 0x1c]
lea edx, [ebp + 0x14]
push edx
mov edx, dword [ecx + 0x44]
lea eax, [ebp - 0xc]
push eax
push ebx
push 1
push 1
push edx
mov ecx, esi
call fcn.004939ed
mov edi, dword [ebp + 0x14]
mov byte [ebp - 1], 1
jmp 0x461992
mov ecx, dword [ebp - 0xc]
call fcn.00402714
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp + 0x1c]
add eax, 0x30
push eax
push 0x76e7
push esi
call fcn.00463ce8
add esp, 0x10
add dword [ebp - 0x38], 1
adc dword [ebp - 0x34], 0
jmp 0x461992
push 1
push 0x473b60
push 0
mov ecx, esi
call fcn.004c4ab9
push eax
mov ecx, esi
call fcn.004c4a9b
push eax
mov eax, dword [ebp + 0x1c]
push ebx
add eax, 0x30
push eax
lea ecx, [esi + 0x18]
call fcn.0045fdb1
mov edi, eax
or byte [edi + 0x28], 8
mov byte [ebp - 1], 1
jmp 0x473a98
mov edx, dword [ebp - 0x40]
mov edi, dword [edx + 4]
push edi
call fcn.0040143a
push eax
push edi
push 0
mov ecx, esi
call fcn.004c4ab9
push eax
mov ecx, esi
call fcn.004c4a9b
push eax
mov eax, dword [ebp + 0x1c]
push ebx
add eax, 0x30
push eax
lea ecx, [esi + 0x18]
call fcn.0045fdb1
mov edi, eax
or byte [edi + 0x28], 4
mov ecx, dword [ebp - 0xc]
call fcn.00408143
neg al
sbb eax, eax
not eax
and eax, dword [ebp - 0xc]
mov dword [edi + 0xc], eax
jmp 0x461992
mov eax, 0x8000
xor ecx, ecx
mov dword [ebp - 0x44], ecx
lea ecx, [edx + 0x30]
or eax, 0x404
cmp dword [ecx], 0
jne 0x4614e4
cmp dword [ecx + 4], 0
jne 0x4614e4
cmp dword [ecx + 8], 0
jne 0x4614e4
cmp dword [ecx + 0xc], 0
jne 0x4614e4
xor ecx, ecx
jmp 0x4614e4
cmp ecx, 0x38
jne 0x473b00
cmp byte [eax + 0x40], 1
je 0x461531
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
test eax, eax
mov dword [ebp - 0x14], eax
je 0x46391d
jmp 0x4618c5
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
push ecx
add eax, 0x50
push eax
push 0x7648
push esi
call fcn.00463ce8
add esp, 0x10
jmp 0x463927
cmp dword [eax + 4], 0
jne 0x463970
cmp dword [eax + 8], 0
jne 0x463970
cmp dword [eax + 0xc], 0
jne 0x463970
mov dword [ebp + 0xc], 0
jmp 0x463973