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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x61f533
push eax
call dword [0x6d34bc]
add esp, 4
mov ecx, dword [edi + 0x18]
cmp byte [ecx + 9], 0
je 0x61f54a
inc dword [ecx + 0xc]
cmp byte [ecx + 0xa], 0
jne 0x61f54a
call fcn.0062b310
mov eax, dword [edi]
test eax, eax
je 0x61f561
mov eax, dword [eax + 0xc]
test eax, eax
je 0x61f561
push eax
call dword [0x6d34bc]
add esp, 4
mov ebx, dword [edi + 0x1c]
test ebx, ebx
je 0x61f576
cmp ebx, 5
je 0x61f576
cmp ebx, 6
jne 0x61fd6e
cmp dword [edi], 0
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 4]
mov dword [esp + 0x38], 0
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 4]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
je 0x61f5a8
cmp byte [ecx + 0x14], 2
jne 0x61f5a8
mov ebx, 5
jmp 0x61f623
xor ebx, ebx
cmp dword [edi + 0xc], ebx
jne 0x61f609
lea edx, [ebx + 2]
mov ecx, esi
call fcn.00628190
mov ebx, eax
test ebx, ebx
jne 0x61f623
mov esi, dword [edi + 4]
mov dword [edi + 0xc], 1
mov eax, dword [esi + 4]
mov dword [esp + 0x34], eax
cmp byte [esi + 9], bl
je 0x61f5e8
inc dword [esi + 0xc]
cmp byte [esi + 0xa], bl
jne 0x61f5e8
mov ecx, esi
call fcn.0062b310
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x28]
bswap eax
mov dword [edi + 8], eax
cmp byte [esi + 9], 0
je 0x61f609
add dword [esi + 0xc], 0xffffffff
jne 0x61f609
mov ecx, esi
call fcn.0062b3d0
mov ecx, dword [edi + 0x18]
cmp byte [ecx + 8], 0
jne 0x61f623
xor edx, edx
call fcn.00628190
mov ebx, eax
mov dword [esp + 0x38], 1
mov eax, dword [edi + 0x18]
mov edx, dword [eax + 4]
mov eax, dword [edi + 4]
mov esi, dword [edx + 0x20]
mov eax, dword [eax + 4]
mov dword [esp + 0x18], esi
mov ecx, dword [eax + 0x20]
mov eax, dword [eax]
mov dword [esp + 0x14], ecx
movzx eax, byte [eax + 5]
mov dword [esp + 0x2c], eax
test ebx, ebx
jne 0x61f65a
cmp eax, 5
jne 0x61f65a
cmp esi, ecx
mov eax, 8
cmovne ebx, eax
mov edx, dword [edx + 0x2c]
xor eax, eax
mov dword [esp + 0xc], edx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
test ecx, ecx
js 0x61f672
cmp eax, ecx
jge 0x61f6e2
mov esi, dword [edi + 0x10]
mov dword [esp + 0x30], esi
cmp esi, edx
ja 0x61f6e2
test ebx, ebx
jne 0x61f71d
mov eax, dword [edi + 0x18]
xor edx, edx
mov ecx, dword [eax + 4]
mov eax, dword [0x6d2abc]
div dword [ecx + 0x20]
inc eax
cmp esi, eax
je 0x61f6d4
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x34]
push 2
push eax
mov edx, esi
call fcn.0062f8f0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x61f6d4
mov esi, dword [esp + 0x34]
mov ecx, edi
mov edx, dword [esp + 0x30]
push eax
push dword [esi + 4]
call fcn.0061fe20
add esp, 8
mov ecx, esi
mov ebx, eax
call fcn.0062f820
mov eax, dword [esp + 0x20]
inc dword [edi + 0x10]
inc eax
mov edx, dword [esp + 0xc]
jmp 0x61f663
test ebx, ebx
jne 0x61f71d
mov eax, edx
mov dword [edi + 0x24], edx
sub eax, dword [edi + 0x10]
inc eax
mov dword [edi + 0x20], eax
cmp dword [edi + 0x10], edx
ja 0x61f726
cmp dword [edi + 0x28], ebx
jne 0x61fad5
mov eax, dword [edi + 0x18]
mov eax, dword [eax + 4]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x58]
mov dword [edi + 0x2c], eax
mov dword [ecx + 0x58], edi
mov dword [edi + 0x28], 1
jmp 0x61fad5
cmp ebx, 0x65
jne 0x61fad5
test edx, edx
jne 0x61f77c
mov esi, dword [edi + 4]
cmp byte [esi + 9], dl
je 0x61f741
inc dword [esi + 0xc]
cmp byte [esi + 0xa], dl
jne 0x61f741
mov ecx, esi
call fcn.0062b310
mov eax, dword [esi + 4]
mov dword [eax + 0x2c], 0
mov ecx, dword [esi + 4]
call fcn.00628460
cmp byte [esi + 9], 0
mov ebx, eax
je 0x61f768
add dword [esi + 0xc], 0xffffffff
jne 0x61f768
mov ecx, esi
call fcn.0062b3d0
mov esi, 1
mov dword [esp + 0xc], esi
test ebx, ebx
je 0x61f780
cmp ebx, 0x65
jne 0x61f797
jmp 0x61f780
mov esi, dword [esp + 0xc]
mov eax, dword [edi + 8]
mov edx, 1
mov ecx, dword [edi + 4]
inc eax
push eax
call fcn.006217a0
add esp, 4
mov ebx, eax
test ebx, ebx
jne 0x61fad5
mov ecx, dword [edi]
test ecx, ecx
je 0x61f7aa
call fcn.005fe170
cmp dword [esp + 0x2c], 5
jne 0x61f83b
mov ecx, dword [edi + 4]
mov edx, 0xffef
mov dword [esp + 0x34], ecx
mov eax, dword [ecx + 4]
mov dword [esp + 0x1c], eax
and word [eax + 0x16], dx
xor edx, edx
call fcn.00628190
mov ebx, eax
test ebx, ebx
jne 0x61f826
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x30], eax
cmp byte [eax + 0x12], 2
jne 0x61f7f3
cmp byte [eax + 0x13], 2
je 0x61f826
mov ecx, dword [esp + 0x34]
mov edx, 2
call fcn.00628190
mov ebx, eax
test ebx, ebx
jne 0x61f826
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 0x48]
call fcn.0062f0f0
mov ebx, eax
test ebx, ebx
jne 0x61f826
mov eax, dword [esp + 0x30]
mov word [eax + 0x12], 0x202
mov eax, dword [esp + 0x1c]
mov ecx, 0xffef
and word [eax + 0x16], cx
test ebx, ebx
jne 0x61fad5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jge 0x61f87f
cdq
idiv ecx
mov ecx, eax
lea eax, [ecx - 1]
add eax, esi
cdq
idiv ecx
xor edx, edx
mov esi, eax
mov eax, dword [edi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x6d2abc]
div dword [ecx + 0x20]
lea ecx, [esi - 1]
inc eax
cmp esi, eax
mov eax, dword [esp + 0xc]
cmovne ecx, esi
mov dword [esp + 0x34], ecx
mov esi, ecx
mov ecx, dword [esp + 0x14]
jmp 0x61f891
mov eax, ecx
mov ecx, dword [esp + 0x14]
cdq
idiv ecx
mov esi, eax
mov eax, dword [esp + 0xc]
imul esi, eax
mov edx, dword [esp + 0x18]
cmp edx, ecx
jge 0x61fbf3
imul edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], edx
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], eax
nop dword [eax]
cmp esi, eax
ja 0x61f917
mov eax, dword [edi + 4]
xor edx, edx
mov ecx, dword [eax + 4]
mov eax, dword [0x6d2abc]
div dword [ecx + 0x20]
inc eax
cmp esi, eax
je 0x61f90c
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x20]
push 0
push eax
mov edx, esi
call fcn.0062f8f0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x61f90c
mov ecx, dword [esp + 0x20]
call fcn.0062f0f0
mov ecx, dword [esp + 0x20]
mov ebx, eax
test ecx, ecx
je 0x61f90c
call fcn.0062f820
mov eax, dword [esp + 0x2c]
inc esi
test ebx, ebx
je 0x61f8c0
jmp 0x61f92d
test ebx, ebx
jne 0x61f92d
mov ecx, dword [esp + 0x10]
xor edx, edx
push 1
call fcn.0062ee60
add esp, 4
mov ebx, eax
mov eax, dword [0x6d2abc]
add eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
cdq
mov esi, eax
mov eax, edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], eax
cmp eax, ecx
jg 0x61f957
jl 0x61f965
mov eax, dword [esp + 0xc]
cmp esi, eax
jae 0x61f95b
jmp 0x61f965
mov eax, dword [esp + 0xc]
mov esi, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ecx
mov eax, dword [0x6d2abc]
add eax, dword [esp + 0x18]
cdq
mov dword [esp + 0x20], edx
mov ecx, eax
mov dword [esp + 0x14], ecx
test ebx, ebx
jne 0x61fad5
mov edi, edx
cmp edi, dword [esp + 0x24]
jg 0x61fb55
jl 0x61f997
cmp ecx, esi
jae 0x61fb55
mov esi, dword [esp + 0x18]
lea ebx, [esp + 0x1c]
push 0
push ebx
mov eax, esi
mov dword [esp + 0x24], 0
cdq
push edx
push eax
push edi
push ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
call fcn.005846b0
mov ecx, dword [esp + 0x30]
lea edx, [eax + 1]
call fcn.0062f8f0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x61f9f1
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
push edi
push dword [esp + 0x18]
mov eax, dword [edx]
push esi
push dword [ecx + 4]
mov eax, dword [eax + 0xc]
push edx
call eax
add esp, 0x14
mov ebx, eax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x61fab2
test byte [ecx + 0x18], 0x40
mov esi, dword [ecx + 0x10]
mov dword [esp + 0x1c], esi
je 0x61fa52
dec dword [esi + 0x78]
mov eax, dword [esi + 0x88]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x88], ecx
push dword [ecx + 4]
mov ecx, dword [ecx + 0x14]
mov eax, dword [eax + 0x98]
dec ecx
mov esi, dword [esi + 0x3c]
cdq
push edx
push eax
mov edi, dword [esi]
push 0
push ecx
call fcn.00584790
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov esi, dword [esp + 0x2c]
add esp, 0x10
mov edi, dword [esp + 0x20]
jmp 0x61fa57
call fcn.006354d0
cmp dword [esi + 0x78], 0
jne 0x61fab2
mov eax, dword [esi + 0xcc]
cmp dword [eax + 0xc], 0
jne 0x61fab2
mov al, byte [esi + 0x10]
cmp al, 6
je 0x61faab
test al, al
je 0x61faab
cmp al, 2
jb 0x61fa97
mov eax, dword [0x6e87f0]
test eax, eax
je 0x61fa83
call eax
mov ecx, esi
call fcn.0062ed40
mov eax, dword [0x6e87f4]
test eax, eax
je 0x61faab
call eax
jmp 0x61faab
cmp byte [esi + 4], 0
jne 0x61faab
push 0
xor edx, edx
mov ecx, esi
call fcn.00632680
add esp, 4
mov ecx, esi
call fcn.006328c0
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
adc edi, dword [esp + 0x40]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], edi
test ebx, ebx
je 0x61f983
mov edi, dword [ebp + 8]
cmp dword [esp + 0x38], 0
je 0x61fd5d
mov ecx, dword [edi + 0x18]
xor edx, edx
call fcn.006277c0
mov esi, dword [edi + 0x18]
cmp byte [esi + 8], 0
je 0x61fd5d
cmp byte [esi + 9], 0
je 0x61fb0d
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x61fb0d
mov ecx, esi
call fcn.0062b310
cmp byte [esi + 8], 2
jne 0x61fd43
mov edx, dword [esi + 4]
mov dword [esp + 0x38], edx
mov eax, dword [edx]
mov dword [esp + 0x40], eax
mov ecx, dword [eax + 0x28]
test ecx, ecx
jne 0x61fd4a
cmp byte [eax + 0x10], 2
jne 0x61fcf4
cmp byte [eax + 4], cl
je 0x61fcf4
cmp byte [eax + 5], 1
jne 0x61fcf4
mov byte [eax + 0x10], 1
jmp 0x61fd29
test ebx, ebx
jne 0x61fad2
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x40]
push ecx
push esi
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
call eax
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x61fad2
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x44], ecx
jl 0x61fba3
jg 0x61fb91
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x40], eax
jbe 0x61fba3
mov eax, dword [esi]
push ecx
push dword [esp + 0x10]
mov eax, dword [eax + 0x10]
push esi
call eax
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0x61fad2
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + 0x3c]
cmp dword [ecx], ebx
je 0x61fbd3
mov eax, dword [ecx]
push ebx
push 0x15
push ecx
mov eax, dword [eax + 0x28]
call eax
mov ebx, eax
add esp, 0xc
cmp ebx, 0xc
jne 0x61fbcf
xor ebx, ebx
jmp 0x61fbd3
test ebx, ebx
jne 0x61fbee
cmp byte [esi + 7], 0
jne 0x61fbee
mov eax, dword [esi + 0x3c]
movzx edx, byte [esi + 0xb]
push edx
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x14]
call eax
add esp, 8
mov ebx, eax
mov edi, dword [ebp + 8]
jmp 0x61fc0a
mov eax, dword [esp + 0x10]
xor edx, edx
push 0
mov ecx, eax
mov dword [eax + 0x18], esi
call fcn.0062ee60
add esp, 4
mov ebx, eax
test ebx, ebx
jne 0x61fad5
mov esi, dword [edi + 4]
cmp byte [esi + 8], bl
je 0x61fc95
cmp byte [esi + 9], bl
je 0x61fc2e
inc dword [esi + 0xc]
cmp byte [esi + 0xa], bl
jne 0x61fc2e
mov ecx, esi
call fcn.0062b310
cmp byte [esi + 8], 2
jne 0x61fc7b
mov ecx, dword [esi + 4]
mov dword [esp + 0x34], ecx
mov eax, dword [ecx]
mov dword [esp + 0x40], eax
mov ebx, dword [eax + 0x28]
test ebx, ebx
jne 0x61fcd4
cmp byte [eax + 0x10], 2
jne 0x61fc9f
cmp byte [eax + 4], bl
je 0x61fc9f
cmp byte [eax + 5], 1
jne 0x61fc9f
mov byte [eax + 0x10], 1
dec dword [esi + 0x14]
mov byte [ecx + 0x14], 1
mov ecx, dword [ecx + 0x3c]
call fcn.00635bb0
mov eax, dword [esp + 0x34]
mov dword [eax + 0x3c], 0
mov ecx, esi
call fcn.00627730
cmp byte [esi + 9], 0
je 0x61fc95
add dword [esi + 0xc], 0xffffffff
jne 0x61fc95
mov ecx, esi
call fcn.0062b3d0
mov ebx, 0x65
jmp 0x61fad5
movzx edx, byte [eax + 0x13]
mov ecx, eax
inc dword [eax + 0x64]
push 1
call fcn.00632680
mov ebx, eax
add esp, 4
movzx eax, bl
cmp eax, 0xd
je 0x61fcc1
cmp eax, 0xa
jne 0x61fccc
mov eax, dword [esp + 0x40]
mov dword [eax + 0x28], ebx
mov byte [eax + 0x10], 6
mov ecx, dword [esp + 0x34]
test ebx, ebx
je 0x61fc61
cmp byte [esi + 9], 0
je 0x61fad5
add dword [esi + 0xc], 0xffffffff
jne 0x61fad5
mov ecx, esi
call fcn.0062b3d0
jmp 0x61fad5
movzx edx, byte [eax + 0x13]
mov ecx, eax
inc dword [eax + 0x64]
push 1
call fcn.00632680
mov ecx, eax
add esp, 4
movzx eax, cl
cmp eax, 0xd
je 0x61fd16
cmp eax, 0xa
jne 0x61fd21
mov eax, dword [esp + 0x40]
mov dword [eax + 0x28], ecx
mov byte [eax + 0x10], 6
mov edx, dword [esp + 0x38]
test ecx, ecx
jne 0x61fd4a
dec dword [esi + 0x14]
mov ecx, dword [edx + 0x3c]
mov byte [edx + 0x14], 1
call fcn.00635bb0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x3c], 0
mov ecx, esi
call fcn.00627730
cmp byte [esi + 9], 0
je 0x61fd5d
add dword [esi + 0xc], 0xffffffff
jne 0x61fd5d
mov ecx, esi
call fcn.0062b3d0
cmp ebx, 0xc0a
mov eax, 7
cmove ebx, eax
mov dword [edi + 0x1c], ebx
mov eax, dword [edi]
test eax, eax
je 0x61fd85
mov eax, dword [eax + 0xc]
test eax, eax
je 0x61fd85
push eax
call dword [0x6d34c4]
add esp, 4
mov ecx, dword [edi + 0x18]
cmp byte [ecx + 9], 0
je 0x61fd99
add dword [ecx + 0xc], 0xffffffff
jne 0x61fd99
call fcn.0062b3d0
mov ecx, dword [edi + 0x14]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x61fdad
push eax
call dword [0x6d34c4]
add esp, 4
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret