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

Disassembly:
sub esp, 0x64
push ebx
mov ebx, dword [esp + 0x6c]
xor eax, eax
push ebp
mov dword [esp + 0x40], eax
push esi
mov ebp, dword [ebx + 8]
push edi
mov byte [esp + 0x13], 0
mov dword [esp + 0x2c], 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x88]
mov dword [esp + 0x50], 0
mov dword [esp + 0x38], ebp
mov dword [esp + 0x54], ecx
cmp dword [eax + 0x30], ecx
jg 0x613006
push 0
push 0
push 0
push 0x14
push ebp
call fcn.0062e2b0
add esp, 0x14
mov dword [esp + 0x54], eax
jmp 0x61303c
lea eax, [ecx + 1]
mov dword [ebp + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x58]
mov dword [eax + ecx*4], 0x14
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x80]
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], ecx
mov eax, dword [edx + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x7c]
mov esi, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
lea edi, [eax + eax*2]
mov eax, dword [esp + 0x8c]
shl edi, 4
add edi, esi
mov dword [esp + 0x30], edi
mov eax, dword [eax + 0x40]
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x18], eax
cmp esi, edi
jae 0x613261
mov ebp, edi
mov ecx, dword [esp + 0x28]
mov edi, dword [esi]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x6130f8
test byte [esi + 0xa], 2
jne 0x6130f8
test byte [edi + 4], 1
jne 0x6130f8
mov eax, dword [edx + 0x30]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x58]
push edi
push eax
mov byte [esp + 0x74], 3
mov dword [esp + 0x64], fcn.00618a60
mov dword [esp + 0x68], 0x666430
call fcn.00685c10
add esp, 8
cmp byte [esp + 0x6c], 0
je 0x6130f1
push 0
push 0
push edi
push dword [ebx]
call fcn.006181f0
push eax
push dword [esp + 0x40]
push dword [ebx]
call fcn.00649bb0
add esp, 0x1c
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x80]
mov ecx, dword [esi + 0x14]
cmp ecx, dword [edx + 0x30]
jne 0x61324a
movzx ecx, word [esi + 0xc]
test cl, 0x82
je 0x61324a
test byte [edx + 0x24], 8
je 0x613127
mov eax, dword [esi]
test byte [eax + 4], 1
jne 0x613127
test cl, cl
js 0x61324a
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
and ecx, dword [esp + 0x84]
and eax, dword [esp + 0x88]
or ecx, eax
jne 0x61324a
mov ecx, dword [esi + 0x1c]
test ecx, ecx
js 0x61324a
mov eax, dword [edx + 0x10]
add ecx, ecx
push dword [esi]
mov eax, dword [eax + 4]
mov bl, byte [eax + ecx*8 + 0xd]
call fcn.00612980
movsx eax, al
add esp, 4
sub eax, 0x41
je 0x613189
dec eax
je 0x613179
xor eax, eax
cmp bl, 0x43
setge al
jmp 0x613181
xor eax, eax
cmp bl, 0x42
sete al
test eax, eax
je 0x61323f
mov edi, dword [esi + 0x1c]
cmp edi, 0x40
jl 0x61319a
xor ebx, ebx
mov ebp, 0x80000000
jmp 0x6131ac
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.00519a30
mov ebx, eax
mov ebp, edx
cmp byte [esp + 0x13], 0
jne 0x6131d8
mov eax, dword [esp + 0x3c]
add edi, edi
mov ecx, dword [eax + 4]
push dword [ecx + edi*8]
push dword [eax]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.00605420
add esp, 0x10
mov byte [esp + 0x13], 1
mov ecx, ebx
mov eax, ebp
and ecx, dword [esp + 0x20]
and eax, dword [esp + 0x18]
or ecx, eax
jne 0x61323b
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
inc edi
push edi
push dword [esp + 0x2c]
push dword [ecx]
call fcn.00688780
add esp, 0xc
test eax, eax
jne 0x613d2c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
or dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x78]
mov eax, dword [eax + 0x30]
mov edx, dword [esp + 0x80]
mov dword [eax + ecx*4], esi
mov ecx, edi
mov eax, dword [esp + 0x18]
or eax, ebp
mov dword [esp + 0x14], ecx
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x18], eax
jmp 0x613252
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0x78]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add esi, 0x30
cmp esi, ebp
jb 0x613088
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x28]
not eax
or eax, 0x80000000
xor esi, esi
mov word [ebx + 0x28], cx
mov word [ebx + 0x18], cx
mov dword [ebx + 0x24], 0x4241
mov edi, dword [edx + 0x44]
and eax, edi
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x18], eax
not ebx
mov eax, dword [esp + 0x3c]
and ebx, dword [edx + 0x40]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x4c], edi
movzx ebx, word [eax + 0x2a]
mov eax, 0x3f
mov dword [esp + 0x40], ebx
cmp ax, bx
jge 0x6132b3
mov dword [esp + 0x44], eax
jmp 0x6132be
movsx eax, bx
mov dword [esp + 0x44], eax
test eax, eax
jle 0x613300
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
lea ebx, [ebx]
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.00519a30
mov ecx, dword [esp + 0x14]
and eax, ebx
and edx, edi
or eax, edx
je 0x6132ef
inc ecx
mov dword [esp + 0x14], ecx
inc esi
cmp esi, ebp
jl 0x6132d0
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x40]
and edi, 0x80000000
xor eax, eax
or eax, edi
je 0x613318
movsx eax, bx
add ecx, 0xffffffc1
add ecx, eax
mov dword [esp + 0x14], ecx
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x78]
movzx eax, ax
movsx edi, ax
mov dword [esp + 0x4c], eax
mov ecx, dword [ecx]
lea eax, [edi*4 + 9]
add eax, edi
lea ebx, [edi*4 + 7]
and eax, 0xfffffff8
and ebx, 0xfffffff8
add eax, 0x40
add eax, ebx
cdq
mov esi, eax
test ecx, ecx
je 0x61335a
push edx
push esi
push ecx
call fcn.006478f0
add esp, 0xc
jmp 0x6133bf
mov eax, esi
or eax, edx
je 0x6133bd
test edx, edx
ja 0x6133bd
jb 0x61336e
cmp esi, 0x7fffff00
jae 0x6133bd
cmp dword [0xb26600], 0
je 0x6133b1
mov eax, dword [0xb2e130]
test eax, eax
je 0x61338a
push eax
call dword [0xb2665c]
add esp, 4
lea eax, [esp + 0x40]
push eax
push esi
call fcn.00631070
mov eax, dword [0xb2e130]
add esp, 8
test eax, eax
je 0x6133ab
push eax
call dword [0xb26664]
add esp, 4
mov eax, dword [esp + 0x40]
jmp 0x6133bf
push esi
call dword [0xb2662c]
add esp, 4
jmp 0x6133bf
xor eax, eax
mov dword [esp + 0x1c], eax
test eax, eax
je 0x613d2c
push esi
mov esi, eax
push 0
push esi
call sub.MSVCRT.dll_memset
lea eax, [esi + 0x40]
add esp, 0xc
mov dword [esi + 0x20], eax
add eax, ebx
mov dword [esi + 8], eax
xor ebx, ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x40], ebx
lea eax, [eax + edi*2]
add eax, 2
mov dword [esi + 4], eax
lea eax, [eax + edi*2]
mov edi, dword [esp + 0x7c]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x4c]
mov word [esi + 0x34], ax
dec eax
mov word [esi + 0x32], ax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x4c], ebx
mov dword [eax + 0x20], esi
mov eax, dword [esp + 0x3c]
mov dword [esi], str.auto_index
mov dword [esi + 0xc], eax
mov edi, dword [edi + 0x14]
mov dword [esp + 0x34], edi
cmp edi, dword [esp + 0x30]
jae 0x6135ed
mov ebp, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
mov eax, dword [edi + 0x14]
cmp eax, dword [edx + 0x30]
jne 0x6135d8
movzx ecx, word [edi + 0xc]
test cl, 0x82
je 0x6135d8
test byte [edx + 0x24], 8
je 0x613471
mov eax, dword [edi]
test byte [eax + 4], 1
jne 0x613471
test cl, cl
js 0x6135d8
mov ecx, dword [edi + 0x20]
mov eax, dword [edi + 0x24]
and ecx, dword [esp + 0x84]
and eax, dword [esp + 0x88]
or ecx, eax
jne 0x6135d8
mov ecx, dword [edi + 0x1c]
test ecx, ecx
js 0x6135d8
mov eax, dword [edx + 0x10]
add ecx, ecx
mov esi, dword [edi]
mov eax, dword [eax + 4]
push dword [esi + 0xc]
mov bh, byte [eax + ecx*8 + 0xd]
call fcn.00649950
mov bl, al
add esp, 4
mov eax, dword [esi + 0x10]
test eax, eax
je 0x6134d8
push eax
call fcn.00649950
add esp, 4
test al, al
je 0x6134eb
test bl, bl
je 0x6134ef
cmp al, 0x43
jge 0x6134d4
cmp bl, 0x43
jl 0x6134f7
mov bl, 0x43
jmp 0x6134f9
test dword [esi + 4], 0x800
je 0x6134f3
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
push dword [eax + 4]
jmp 0x6134bb
test bl, bl
je 0x6134f7
add bl, al
jmp 0x6134f9
test bl, bl
jne 0x6134f9
mov bl, 0x41
movsx eax, bl
sub eax, 0x41
je 0x61351e
dec eax
je 0x61350e
xor eax, eax
cmp bh, 0x43
setge al
jmp 0x613516
xor eax, eax
cmp bh, 0x42
sete al
test eax, eax
je 0x6135cd
mov ecx, dword [edi + 0x1c]
cmp ecx, 0x40
jl 0x61352f
xor eax, eax
mov edi, 0x80000000
jmp 0x61353d
mov eax, 1
xor edx, edx
call fcn.00519a30
mov edi, edx
mov ebx, dword [esp + 0x4c]
mov esi, eax
mov ecx, edi
and esi, ebx
and ecx, dword [esp + 0x40]
or esi, ecx
jne 0x6135c9
mov ecx, dword [esp + 0x1c]
or ebx, eax
mov edx, dword [esp + 0x34]
or dword [esp + 0x40], edi
mov edi, dword [esp + 0x34]
mov ecx, dword [ecx + 4]
mov edx, dword [edx]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x24]
mov ax, word [edi + 0x1c]
mov word [ecx + ebx*2], ax
mov eax, dword [edx + 0xc]
mov esi, dword [edx + 0x10]
test dword [eax + 4], 0x100
je 0x613588
push eax
jmp 0x6135a4
test esi, esi
je 0x613595
test dword [esi + 4], 0x100
jne 0x6135a3
push eax
push ebp
call fcn.0064c970
add esp, 8
test eax, eax
jne 0x6135b6
push esi
push ebp
call fcn.0064c970
add esp, 8
mov ecx, 0x6c1a88
test eax, eax
je 0x6135b8
mov ecx, dword [eax]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x20]
mov dword [eax + ebx*4], ecx
inc ebx
mov dword [esp + 0x24], ebx
jmp 0x6135d1
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
add edi, 0x30
mov dword [esp + 0x34], edi
cmp edi, dword [esp + 0x30]
jb 0x613442
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x44]
xor esi, esi
test edi, edi
jle 0x613639
mov ebp, dword [esp + 0x1c]
jmp 0x613600
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.00519a30
and eax, dword [esp + 0x20]
and edx, dword [esp + 0x18]
or eax, edx
je 0x61362c
mov eax, dword [ebp + 4]
mov word [eax + ebx*2], si
mov eax, dword [ebp + 0x20]
mov dword [eax + ebx*4], 0x6c1a88
inc ebx
inc esi
cmp esi, edi
jl 0x613600
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x80]
xor eax, eax
mov edx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x44]
and ecx, 0x80000000
or eax, ecx
je 0x613683
mov esi, dword [esp + 0x3c]
mov eax, 0x3f
cmp ax, word [esi + 0x2a]
jge 0x613683
mov ecx, eax
mov eax, dword [edx + 4]
mov word [eax + ebx*2], cx
inc ecx
mov eax, dword [edx + 0x20]
mov dword [eax + ebx*4], 0x6c1a88
inc ebx
movsx eax, word [esi + 0x2a]
cmp ecx, eax
jl 0x613664
mov dword [esp + 0x24], ebx
mov eax, dword [edx + 4]
or ecx, 0xffffffff
mov edi, dword [esp + 0x78]
mov word [eax + ebx*2], cx
mov eax, dword [edx + 0x20]
mov edx, dword [esp + 0x14]
inc edx
mov dword [eax + ebx*4], 0x6c1a88
mov ebx, dword [esp + 0x8c]
mov eax, dword [edi + 0x28]
mov dword [ebx + 8], eax
inc dword [edi + 0x28]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x88]
mov esi, dword [ebx + 8]
cmp dword [eax + 0x30], ecx
jg 0x6136d2
push 0
push edx
push esi
push 0x6b
push ebp
call fcn.0062e2b0
add esp, 0x14
jmp 0x613700
lea eax, [ecx + 1]
mov dword [ebp + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x58]
mov dword [eax + ecx*4], 0x6b
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x1c]
mov esi, dword [edi + 8]
push edi
call fcn.00659d70
mov edx, eax
add esp, 8
test edx, edx
je 0x613741
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x61372c
push edx
push 0xfffffffffffffff7
push eax
call fcn.0061ba30
add esp, 0xc
jmp 0x613741
mov eax, dword [esi + 0x88]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
inc dword [edi + 0x3c]
movzx eax, byte [ebx + 0x2c]
mov esi, dword [ebp + 0x88]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x7c]
shl ecx, 4
mov eax, dword [eax]
mov ebx, dword [eax + 4]
add ebx, 8
add ebx, ecx
mov dword [esp + 0x4c], ebx
test byte [ebx + 0x28], 0x10
je 0x613880
mov eax, dword [ebp + 0xc]
mov edi, dword [ebx + 0x1c]
mov dword [esp + 0x48], esi
cmp dword [eax + 0x30], esi
jg 0x613796
push 0
push 0
push 0
push 0x43
push ebp
call fcn.0062e2b0
add esp, 0x14
mov dword [esp + 0x48], eax
jmp 0x6137cc
lea eax, [esi + 1]
mov dword [ebp + 0x88], eax
lea ecx, [esi + esi*4]
mov eax, dword [ebp + 0x58]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x88]
mov edx, dword [ebx + 0x18]
cmp dword [eax + 0x30], ecx
jg 0x6137ee
push edx
push 0
push edi
push 0xf
push ebp
call fcn.0062e2b0
add esp, 0x14
jmp 0x61381c
lea eax, [ecx + 1]
mov dword [ebp + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x58]
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x88]
cmp dword [eax + 0x30], esi
jg 0x613848
push 0
push 0
push edi
push 0x10
push ebp
call fcn.0062e2b0
mov edi, dword [esp + 0x8c]
add esp, 0x14
mov esi, eax
jmp 0x6138dc
lea eax, [esi + 1]
mov dword [ebp + 0x88], eax
lea ecx, [esi + esi*4]
mov eax, dword [ebp + 0x58]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x78]
mov dword [eax + ecx*4], 0x10
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x6138dc
mov eax, dword [esp + 0x8c]
mov edx, dword [eax + 4]
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x30], esi
jg 0x6138a6
push 0
push 0
push edx
push 0x25
push ebp
call fcn.0062e2b0
add esp, 0x14
mov esi, eax
jmp 0x6138dc
mov ebx, dword [esp + 0x4c]
lea eax, [esi + 1]
mov dword [ebp + 0x88], eax
lea ecx, [esi + esi*4]
mov eax, dword [ebp + 0x58]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x2c], 0
je 0x613a68
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x80], ecx
mov edx, dword [ecx + 0x44]
mov dword [esp + 0x44], edx
lea eax, [edx + 1]
mov dword [ecx + 0x44], eax
lea eax, [edx - 1]
test edx, eax
jne 0x613a32
mov edi, dword [ecx + 0x48]
lea eax, [edx*8 + 4]
mov ebx, dword [ecx]
xor edx, edx
mov dword [esp + 0x7c], eax
test edi, edi
jne 0x61392c
push edx
push eax
push ebx
call fcn.006478f0
add esp, 0xc
jmp 0x613974
cmp edi, dword [ebx + 0x128]
jb 0x613968
cmp edi, dword [ebx + 0x12c]
jae 0x613968
movzx eax, word [ebx + 0x10c]
cdq
mov dword [esp + 0x50], eax
xor eax, eax
cmp eax, edx
ja 0x613962
jb 0x61395a
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x50]
ja 0x613966
mov eax, edi
mov dword [esp + 0x7c], eax
jmp 0x61397f
mov eax, dword [esp + 0x7c]
xor edx, edx
push edx
push eax
push edi
push ebx
call fcn.00614cd0
add esp, 0x10
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x7c], eax
test eax, eax
jne 0x613a23
test edi, edi
je 0x613a23
test ebx, ebx
je 0x6139c7
cmp dword [ebx + 0x1d0], eax
je 0x6139a7
push edi
push ebx
call fcn.006311f0
add esp, 8
jmp 0x613a1c
cmp edi, dword [ebx + 0x128]
jb 0x6139c7
cmp edi, dword [ebx + 0x12c]
jae 0x6139c7
mov eax, dword [ebx + 0x124]
mov dword [edi], eax
mov dword [ebx + 0x124], edi
jmp 0x613a23
cmp dword [0xb26600], 0
je 0x613a12
mov eax, dword [0xb2e130]
test eax, eax
je 0x6139e3
push eax
call dword [0xb2665c]
add esp, 4
push edi
call dword [0xb26638]
sub dword [0xb2df80], eax
dec dword [0xb2dfa4]
push edi
call dword [0xb26630]
mov eax, dword [0xb2e130]
add esp, 8
test eax, eax
je 0x613a1c
push eax
call dword [0xb26664]
jmp 0x613a19
push edi
call dword [0xb26630]
add esp, 4
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 0x44]
mov dword [ecx + 0x48], ebx
mov ebx, dword [esp + 0x4c]
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x613a40
mov dword [eax + edx*4], 0xffffffff
mov edi, dword [esp + 0x78]
or eax, 0xffffffff
sub eax, edx
push 0x10
push eax
push dword [esp + 0x34]
mov dword [esp + 0x5c], eax
push edi
call fcn.0064cff0
mov eax, dword [esp + 0x38]
add esp, 0x10
or dword [eax + 0x24], 0x20000
mov al, byte [edi + 0x13]
test al, al
jne 0x613a77
inc dword [edi + 0x2c]
mov edi, dword [edi + 0x2c]
jmp 0x613a86
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov edi, dword [edi + eax*4 + 0x15c]
mov eax, dword [esp + 0x8c]
push 0
push 0
push 0
push 0
push edi
push dword [eax + 4]
push dword [esp + 0x34]
push dword [esp + 0x94]
call fcn.006563c0
mov ecx, dword [ebp + 0xc]
add esp, 0x20
mov edx, dword [ebp + 0x88]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 8]
mov dword [esp + 0x80], eax
cmp dword [ecx + 0x30], edx
jg 0x613ae0
push 0
push edi
push eax
push 0x7f
push ebp
call fcn.0062e2b0
add esp, 0x14
jmp 0x613b15
lea eax, [edx + 1]
mov dword [ebp + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [ebp + 0x58]
mov edx, dword [esp + 0x80]
mov dword [eax + ecx*4], 0x7f
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp + 0x88]
test eax, eax
jle 0x613b2f
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [ebp + 0x58]
mov word [eax + ecx*4 - 0x12], dx
cmp dword [esp + 0x2c], 0
je 0x613b55
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x613b55
mov eax, dword [esp + 0x50]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [ebp + 0x88]
mov dword [ecx], eax
test byte [ebx + 0x28], 0x10
je 0x613c10
mov ecx, dword [esp + 0x48]
test ecx, ecx
jns 0x613b6e
mov ecx, dword [ebp + 0x88]
dec ecx
mov eax, dword [ebp]
cmp byte [eax + 0x49], 0
je 0x613b7e
mov ecx, 0xb2e43c
jmp 0x613b87
mov eax, dword [ebp + 0x58]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x24]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x8c]
push 1
push dword [ebx + 0x20]
push dword [eax + 4]
push esi
push dword [esp + 0x88]
call fcn.0067e490
mov eax, dword [ebp + 0xc]
add esp, 0x14
mov ecx, dword [ebp + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x613bd8
push 0
push esi
push 0
push 0xd
push ebp
call fcn.0062e2b0
add esp, 0x14
and dword [ebx + 0x28], 0xffffffef
jmp 0x613c6d
lea eax, [ecx + 1]
mov dword [ebp + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x58]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
and dword [ebx + 0x28], 0xffffffef
jmp 0x613c6d
mov eax, dword [esp + 0x8c]
lea edx, [esi + 1]
mov ecx, dword [ebp + 0x88]
mov ebx, dword [eax + 4]
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x613c3c
push 0
push edx
push ebx
push 7
push ebp
call fcn.0062e2b0
add esp, 0x14
jmp 0x613c6d
lea eax, [ecx + 1]
mov dword [ebp + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x58]
lea edx, [esi + 1]
mov dword [eax + ecx*4], 7
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp + 0x88]
test eax, eax
jle 0x613c87
lea ecx, [eax + eax*4]
mov edx, 3
mov eax, dword [ebp + 0x58]
mov word [eax + ecx*4 - 0x12], dx
mov edx, dword [ebp + 0x88]
test esi, esi
jns 0x613c94
lea esi, [edx - 1]
mov eax, dword [ebp]
cmp byte [eax + 0x49], 0
je 0x613ca4
mov eax, 0xb2e43c
jmp 0x613cad
mov eax, dword [ebp + 0x58]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov esi, dword [esp + 0x78]
mov dword [eax + 8], edx
test edi, edi
je 0x613cea
mov bl, byte [esi + 0x13]
cmp bl, 8
jae 0x613cea
movzx edx, byte [esi + 0x19]
lea eax, [esi + 0x94]
xor ecx, ecx
test edx, edx
jle 0x613cdd
cmp dword [eax + 0xc], edi
je 0x613d17
inc ecx
add eax, 0x14
cmp ecx, edx
jl 0x613cd0
movzx eax, bl
mov dword [esi + eax*4 + 0x15c], edi
inc byte [esi + 0x13]
push esi
call fcn.00649ee0
mov ecx, dword [esp + 0x58]
add esp, 4
mov edx, dword [ebp + 0x88]
test ecx, ecx
jns 0x613d04
lea ecx, [edx - 1]
mov eax, dword [ebp]
cmp byte [eax + 0x49], 0
je 0x613d1d
mov eax, 0xb2e43c
mov dword [eax + 8], edx
jmp 0x613d30
mov byte [eax + 6], 1
jmp 0x613cea
mov eax, dword [ebp + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x613d30
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x613d43
push eax
push dword [esi]
call fcn.0064cdb0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret