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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, eax
mov eax, dword [esi]
mov edx, dword [esi + 8]
xor ecx, ecx
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 4], eax
mov ebx, edx
cmp dword [esi + 0x1bc], ecx
je 0x61374e
mov dword [ebp - 8], 1
cmp eax, dword [esi + 4]
je 0x613751
mov dword [ebp - 8], ecx
test dword [edi + 0x28], 0x102
je 0x613be4
test byte [ebp + 0xc], 5
mov ebx, dword [esi + 4]
mov dword [esi], ebx
je 0x6137ef
xor edx, edx
mov dword [esi + 0x16c], edx
cmp ebx, edx
je 0x613847
mov eax, dword [esi + 0x68]
cmp eax, 0x77
jg 0x613847
movzx ecx, word [ebx + eax*4 + 0xa]
mov edi, 0xffff
cmp cx, di
je 0x613847
mov edx, ecx
mov ecx, dword [ebp + 8]
imul edx, edx, 0x4c
mov edi, dword [ecx + 0x34]
add edi, edx
xor edx, edx
mov dword [esi + 8], edi
mov dword [ebp - 4], edi
cmp dword [edi + 0x34], edx
je 0x6137dc
mov edx, dword [edi + 4]
mov dword [esi + 0x7c], edx
test byte [ecx + 0x28], 2
jne 0x6137c7
movzx eax, word [ebx + eax*4 + 8]
call fcn.00612959
mov dword [esi + 0x84], eax
mov dword [esi + 0xd8], eax
xor edx, edx
jmp 0x61384f
mov dword [esi + 8], edx
mov dword [esi + 0xec], edx
mov dword [esi + 0x100], 1
xor edx, edx
cmp dword [ebp - 8], edx
jne 0x6137fc
mov dword [esi + 0x16c], edx
cmp ebx, edx
je 0x613d74
mov eax, dword [esi + 0x68]
cmp eax, 0x77
jg 0x613d74
movzx eax, word [ebx + eax*4 + 0xa]
mov ecx, 0xffff
cmp ax, cx
je 0x613d74
mov edi, dword [ebp + 8]
imul eax, eax, 0x4c
add eax, dword [edi + 0x34]
jne 0x6139db
mov dword [esi + 0x54], 0x80
mov dword [esi + 0x5c], edx
mov dword [esi + 0x80], edx
jmp 0x613bc2
xor edi, edi
mov dword [esi + 8], edx
mov dword [ebp - 4], edi
cmp edi, edx
je 0x6137df
mov ecx, dword [esi + 0x120]
cmp ecx, dword [edi + 0x14]
jl 0x613870
mov ecx, dword [ebp + 8]
test dword [ecx + 0x28], 0x800
je 0x6138bf
mov dword [esi + 0x120], edx
or byte [esi + 0x11d], 1
cmp byte [edi + 0x3e], 0
je 0x6138de
cmp byte [edi + 0x3f], 0
je 0x6138de
mov dword [esi + 0xec], 1
mov al, byte [edi + 0x3c]
mov byte [esi + 0xf0], al
mov al, byte [edi + 0x3e]
mov byte [esi + 0xf2], al
mov al, byte [edi + 0x3f]
mov byte [esi + 0xf1], al
mov byte [esi + 0xf3], al
mov al, byte [edi + 0x3d]
mov byte [esi + 0xf4], al
mov dword [esi + 0xf8], edx
jmp 0x6138e4
test byte [edi + 0x20], 0x10
je 0x6138ce
or dword [esi + 0x120], 0xffffffff
jmp 0x613870
mov dword [esi + 8], edx
mov dword [ebp - 4], edx
mov dword [esi + 0x100], 1
mov dword [esi + 0xec], edx
test byte [ebp + 0xc], 0x10
mov eax, dword [ebx + 0x33c]
mov dword [esi + 0x140], eax
jne 0x6137ef
mov eax, dword [ebp + 8]
test dword [eax + 0x28], 0x200
je 0x6137ef
mov eax, dword [ebx + 0x358]
test al, al
jns 0x61391d
and eax, 0x7f
mov dword [esi + 0x184], eax
mov eax, dword [ebx + 0x35c]
test al, al
jns 0x613930
and eax, 0x7f
mov dword [esi + 0x188], eax
cmp dword [ebx + 0x348], 0
je 0x6137ef
mov eax, dword [ebp + 8]
mov edi, dword [eax + 4]
imul edi, edi, 0x20c
add edi, dword [eax + 0x1e8]
mov eax, dword [eax + 0x1ec]
mov dword [ebp - 0xc], eax
cmp byte [edi + 0x1b4], 0
je 0x6139cb
mov eax, dword [edi + 0x12c]
cmp eax, dword [esi + 0x12c]
jne 0x6139cb
cmp dword [edi], ebx
jne 0x6139cb
mov eax, dword [ebx + 0x348]
dec eax
je 0x61398c
dec eax
je 0x613984
dec eax
je 0x613994
jmp 0x6139cb
mov eax, dword [edi + 8]
cmp eax, dword [ebp - 4]
jmp 0x613992
mov eax, dword [edi + 0x68]
cmp eax, dword [esi + 0x68]
jne 0x6139cb
mov eax, dword [ebx + 0x34c]
sub eax, 0
je 0x6139c1
dec eax
je 0x6139b5
dec eax
jne 0x6139cb
mov eax, dword [edi + 0xc]
cmp eax, 0x7fff
jne 0x6139cb
dec eax
mov dword [edi + 0xc], eax
jmp 0x6139cb
mov edx, dword [ebp + 8]
mov eax, edi
call fcn.0061285d
jmp 0x6139cb
mov dword [edi + 0x100], 1
add edi, 0x20c
dec dword [ebp - 0xc]
jne 0x613958
jmp 0x6137ef
mov ecx, dword [ebp + 0xc]
and ecx, 0x20
mov dword [ebp - 4], ecx
jne 0x613a00
mov ecx, dword [eax + 0x10]
cmp ecx, edx
jge 0x6139fd
mov ecx, dword [ebx + 0x338]
cmp ecx, edx
jge 0x6139fd
mov ecx, dword [esi + 0x178]
mov dword [esi + 0x54], ecx
test byte [ebp + 0xc], 0x40
jne 0x613a1b
mov ecx, dword [eax + 0x40]
mov dword [esi + 0x130], ecx
mov ecx, dword [eax + 0xc]
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x80], ecx
test dword [edi + 0x28], 0x200
je 0x613bb9
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0xc], ecx
cmp dword [ebx + 0x350], edx
je 0x613a63
mov ecx, dword [ebx + 0x350]
call fcn.005ff98f
xor edx, edx
lea edi, [ecx + ecx]
div edi
push 0x64
mov eax, edx
sub eax, ecx
add eax, 0x64
imul eax, dword [ebp - 0xc]
pop ecx
xor edx, edx
div ecx
push 0x40
pop ecx
cmp eax, ecx
jae 0x613a63
mov ecx, eax
mov eax, dword [ebx + 0x334]
imul eax, ecx
shr eax, 7
cmp dword [ebp - 4], 0
mov dword [esi + 0x130], eax
jne 0x613bb9
mov eax, dword [ebx + 0x340]
xor edx, edx
cmp eax, edx
je 0x613ab5
mov edi, dword [esi + 0x68]
sub edi, dword [ebx + 0x344]
imul edi, eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
and ecx, 0x210000
neg ecx
sbb ecx, ecx
and ecx, 2
inc ecx
sar edi, cl
mov dword [esi + 0x164], edi
jmp 0x613abb
mov dword [esi + 0x164], edx
lea eax, [ebx + 0x354]
cmp dword [eax], edx
je 0x613b09
cmp dword [esi + 0x54], edx
jl 0x613b09
mov ecx, dword [eax]
call fcn.005ff98f
lea edi, [ecx + ecx]
xor edx, edx
div edi
mov eax, dword [ebp + 8]
sub edx, ecx
mov ecx, dword [eax + 0x28]
and ecx, 0x210000
neg ecx
sbb ecx, ecx
and ecx, 2
sar edx, cl
add dword [esi + 0x54], edx
mov eax, dword [esi + 0x54]
jns 0x613afd
and dword [esi + 0x54], 0
jmp 0x613b09
mov ecx, 0xff
cmp eax, ecx
jle 0x613b09
mov dword [esi + 0x54], ecx
cmp dword [ebp - 8], 0
je 0x613b27
test byte [ebx + 0x1e8], 0x20
je 0x613b27
cmp dword [esi + 0x140], 0
je 0x613b27
and byte [esi + 0x14], 0xf7
jmp 0x613b3b
push 0xffffffffffffffc0
push esi
push dword [ebp + 8]
lea edi, [ebx + 0x1e8]
lea ecx, [esi + 0x14]
call fcn.00613141
cmp dword [ebp - 8], 0
je 0x613b59
test byte [ebx + 0x252], 0x20
je 0x613b59
cmp dword [esi + 0x140], 0
je 0x613b59
and byte [esi + 0x30], 0xf7
jmp 0x613b6d
push 0xffffffffffffffe0
push esi
push dword [ebp + 8]
lea edi, [ebx + 0x252]
lea ecx, [esi + 0x30]
call fcn.00613141
cmp dword [ebp - 8], 0
je 0x613b93
mov al, byte [ebx + 0x2c8]
test al, 0x20
je 0x613b93
cmp dword [esi + 0x140], 0
jne 0x613b8a
test al, 0x10
je 0x613b93
and byte [esi + 0x148], 0xf7
jmp 0x613bb9
lea edi, [ebx + 0x2c8]
test byte [edi], 0x10
lea ecx, [esi + 0x148]
je 0x613bab
push 0xfffff800
jmp 0x613bb0
push 0xfffffc00
push esi
push dword [ebp + 8]
call fcn.00613141
mov eax, dword [ebx + 0x2bc]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0xc]
and eax, 0x20
jne 0x613bd1
mov dword [esi + 0xc], 0x7fff
test eax, eax
jne 0x613bdc
mov dword [esi + 0x4c], 1
mov edx, dword [ebp + 8]
jmp 0x613e52
test byte [ebp + 0xc], 5
je 0x613cd7
test byte [ebp + 0xc], 8
mov eax, dword [esi + 4]
mov dword [ebp - 0xc], ecx
mov dword [esi], eax
mov dword [ebp - 4], eax
je 0x613c09
test byte [edi + 0x28], 8
jne 0x613d1f
test eax, eax
je 0x613d1a
mov ecx, dword [esi + 0x68]
movzx eax, word [eax + ecx*4 + 0xa]
mov ebx, 0xffff
cmp ax, bx
je 0x613d1a
mov ebx, eax
imul ebx, ebx, 0x4c
add ebx, dword [edi + 0x34]
cmp dword [ebx + 0x34], 0
je 0x613cb0
mov eax, dword [edi + 0x28]
test al, 8
jne 0x613c87
mov edi, dword [ebx + 8]
add edi, ecx
cmp edi, 0x77
mov edi, dword [ebp + 8]
jl 0x613c87
test eax, 0x10000
je 0x613c70
push 0x77
mov dword [esi + 8], ebx
pop eax
sub eax, dword [ebx + 8]
mov dword [esi + 0x68], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x64], eax
mov eax, dword [ebx + 4]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x68]
add eax, dword [esi + 0x64]
jmp 0x613c9b
mov eax, dword [esi + 0x1b8]
mov dword [esi + 0x68], eax
mov ebx, edx
mov dword [ebp - 0xc], 1
jmp 0x613d1f
mov dword [esi + 8], ebx
mov eax, dword [ebx + 8]
mov dword [esi + 0x64], eax
mov eax, dword [ebx + 4]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x64]
add eax, ecx
mov ecx, edi
call fcn.00612959
mov dword [esi + 0x84], eax
mov dword [esi + 0xd8], eax
jmp 0x613d1f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
and al, 1
movzx eax, al
neg eax
sbb eax, eax
and eax, ebx
mov dword [esi + 8], eax
xor ebx, ebx
and dword [esi + 0xec], 0
mov dword [esi + 0x100], 1
test byte [ebp + 0xc], 2
je 0x613e59
mov ecx, dword [edi + 0x28]
mov edx, 0x88
and ecx, edx
cmp ecx, edx
jne 0x613de9
mov eax, dword [esi + 4]
test eax, eax
je 0x613de9
movzx eax, word [eax + 0xa]
mov ecx, dword [edi + 0x34]
imul eax, eax, 0x4c
mov eax, dword [eax + ecx + 0xc]
mov dword [esi + 0x5c], eax
mov dword [esi + 0x80], eax
jmp 0x613e1b
xor ebx, ebx
mov dword [esi + 8], ebx
xor edx, edx
cmp ebx, edx
je 0x613cc6
mov dword [esi + 0xe4], edx
cmp dword [ebp - 0xc], edx
jne 0x613d9d
mov eax, dword [edi + 0x28]
test al, al
jns 0x613d43
cmp dword [edi + 0x18], 0xf
jne 0x613d43
test byte [ebx + 0x20], 0x10
jne 0x613d89
mov ecx, dword [esi + 0x120]
cmp ecx, dword [ebx + 0x14]
jl 0x613d96
test eax, 0x10000
jne 0x613d83
mov ecx, 0x88
and eax, ecx
cmp eax, 8
je 0x613d83
cmp eax, ecx
jne 0x613d6b
test byte [ebx + 0x20], 0x10
jne 0x613d89
mov dword [esi + 8], edx
mov dword [esi + 0xec], edx
mov dword [esi + 0x100], 1
jmp 0x613e59
test byte [ebx + 0x20], 0x10
je 0x613d8e
mov eax, dword [ebx + 0x18]
jmp 0x613d90
xor eax, eax
mov dword [esi + 0x120], eax
or byte [esi + 0x11d], 1
test byte [ebp + 0xc], 4
je 0x613db5
push dword [ebp - 4]
mov edi, esi
call fcn.0061364a
mov edi, dword [ebp + 8]
jmp 0x613cd7
mov eax, dword [ebp - 4]
cmp eax, edx
je 0x613cd7
test byte [eax + 0x1e8], 1
jne 0x613cd7
cmp dword [esi + 0xc], edx
jne 0x613cd7
mov dword [esi + 0xc], 0x7ef4
mov dword [esi + 0x10], 0x80
jmp 0x613cd7
test ebx, ebx
jne 0x613e05
cmp ecx, edx
je 0x613df8
mov dword [esi + 0x54], 0x80
and dword [esi + 0x5c], 0
and dword [esi + 0x80], 0
jmp 0x613e1b
mov eax, dword [ebx + 0x10]
test eax, eax
js 0x613e0f
mov dword [esi + 0x54], eax
mov ebx, dword [ebx + 0xc]
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x80], ebx
test byte [ebp + 0xc], 0x20
jne 0x613e50
push dword [ebp - 4]
mov edi, esi
call fcn.0061364a
cmp dword [ebp - 4], 0
je 0x613e38
or byte [esi + 0x11d], 6
and dword [esi + 0xe4], 0
mov edi, dword [ebp + 8]
mov dword [esi + 0xc], 0x7ef4
mov dword [esi + 0x78], 1
mov edx, edi
mov ecx, esi
call fcn.0061281f
pop edi
pop esi
pop ebx
leave
ret 8