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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x10c
mov ebp, dword [esp + 0x128]
mov ebx, dword [esp + 0x124]
cmp dword [ebx], 1
jle 0x4ec265
mov dword [esp + 4], str.Tcl_AppendFormatToObj
mov dword [esp], 0x61d2bc
call fcn.00508cd0
mov ebx, dword [esp + 0x124]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4ed502
mov eax, dword [ebx + 8]
mov dword [esp + 0x98], eax
mov dword [esp + 0x34], 0x7fffffff
sub dword [esp + 0x34], eax
mov esi, ebp
mov dword [esp + 0x5c], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x44], 0
xor ebx, ebx
lea edi, [esp + 0x96]
cmp byte [ebp], 0
je 0x4ec2d7
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.0050d834
add ebp, eax
cmp word [esp + 0x96], 0x25
je 0x4ec32c
add ebx, eax
cmp byte [ebp], 0
jne 0x4ec2b6
test ebx, ebx
je 0x4ecfa9
cmp dword [esp + 0x34], ebx
jge 0x4ed7f6
mov eax, 0x61d3ac
mov edx, dword [esp + 0x120]
test edx, edx
jne 0x4ecbe4
lea esi, [esi]
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x124]
mov dword [esp], ebx
call fcn.004eb838
mov eax, 1
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
test ebx, ebx
je 0x4ec351
cmp ebx, dword [esp + 0x34]
jg 0x4ec2e9
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x124]
mov dword [esp], eax
call fcn.004ebdfc
sub dword [esp + 0x34], ebx
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.0050d834
mov dword [esp + 0x18], eax
mov ax, word [esp + 0x96]
cmp ax, 0x25
je 0x4ec528
movzx eax, al
sub eax, 0x30
cmp eax, 9
jbe 0x4ec544
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x4ed866
mov dword [esp + 0x5c], 1
mov ebx, dword [esp + 0x44]
cmp dword [esp + 0x12c], ebx
jle 0x4ec5a7
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x58], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x18]
nop
mov cx, word [esp + 0x96]
lea edx, [ecx - 0x20]
cmp dx, 0x10
ja case.0x4ec3dc.1
movzx edx, dx
jmp dword [edx*4 + 0x61d48c]
mov dword [esp + 0x18], eax
mov eax, ecx
mov dword [esp + 0xa0], 0
movzx edx, cl
sub edx, 0x30
cmp edx, 9
jbe 0x4ec5b8
cmp ax, 0x2a
je 0x4ecc0c
xor eax, eax
cmp dword [esp + 0x34], eax
jl 0x4ec2e9
mov dword [esp + 0xa4], 0
movzx eax, word [esp + 0x96]
cmp ax, 0x2e
je 0x4eccec
mov dword [esp + 0x68], 0
movzx edx, al
sub edx, 0x30
cmp edx, 9
jbe 0x4ec600
cmp ax, 0x2a
je 0x4ecc7c
cmp ax, 0x68
je 0x4ec64b
cmp ax, 0x6c
je 0x4ecd18
mov dword [esp + 0x48], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x50], 0
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x130]
mov edx, dword [ecx + edx*4]
mov dword [esp + 0x40], edx
cmp ax, 0x69
je 0x4ec684
cmp ax, 0x78
jbe 0x4ec538
mov edx, dword [esp + 0x120]
test edx, edx
je 0x4ec300
mov dword [esp + 4], eax
mov dword [esp], str.bad_field_specifier___c_
call fcn.004ec210
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x120]
mov dword [esp], ebx
call fcn.004e1100
jmp 0x4ec300
mov dword [esp + 0x58], 1
add ebp, eax
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.0050d834
jmp 0x4ec3c8
mov dword [esp + 0x4c], 1
jmp 0x4ec4ec
mov esi, 1
jmp 0x4ec4ec
mov dword [esp + 0x38], 1
jmp 0x4ec4ec
mov ebx, 1
jmp 0x4ec4ec
mov ebx, dword [esp + 0x18]
mov esi, ebp
add ebp, ebx
jmp 0x4ec2b0
movzx edx, ax
jmp dword [edx*4 + 0x61d4d0]
mov dword [esp + 8], 0xa
lea eax, [esp + 0x9c]
mov dword [esp + 4], eax
mov dword [esp], ebp
call sub.msvcrt.dll_strtoul
mov edx, dword [esp + 0x9c]
cmp byte [edx], 0x24
jne 0x4ec382
dec eax
mov dword [esp + 0x44], eax
lea ebp, [edx + 1]
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.0050d834
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x5c]
test edx, edx
jne 0x4ed866
mov eax, dword [esp + 0x44]
test eax, eax
mov dword [esp + 0x64], 1
jns 0x4ec396
mov ebx, dword [esp + 0x64]
mov eax, dword [ebx*4 + 0x61d9ac]
jmp 0x4ecbd5
mov dword [esp + 8], 0xa
lea eax, [esp + 0x9c]
mov dword [esp + 4], eax
mov dword [esp], ebp
call sub.msvcrt.dll_strtoul
mov dword [esp + 0xa0], eax
mov ebp, dword [esp + 0x9c]
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.0050d834
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xa0]
jmp 0x4ec410
mov dword [esp + 8], 0xa
lea eax, [esp + 0x9c]
mov dword [esp + 4], eax
mov dword [esp], ebp
call sub.msvcrt.dll_strtoul
mov dword [esp + 0xa4], eax
mov ebp, dword [esp + 0x9c]
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.0050d834
mov dword [esp + 0x18], eax
movzx eax, word [esp + 0x96]
cmp ax, 0x68
jne 0x4ec462
add ebp, dword [esp + 0x18]
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.0050d834
mov dword [esp + 0x18], eax
movzx eax, word [esp + 0x96]
mov dword [esp + 0x48], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x50], 1
jmp 0x4ec484
mov word [esp + 0x96], 0x64
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4ec6f2
lea eax, [esp + 0xc4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x120]
mov dword [esp], edx
call fcn.004debf0
test eax, eax
jne 0x4ec300
mov dword [esp + 4], 0
lea ecx, [esp + 0xc4]
mov dword [esp], ecx
call fcn.0053dde0
xor edx, edx
inc eax
sete dl
mov word [esp + 0x6c], 0
jmp 0x4ec754
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x4ed814
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x4ed18f
mov eax, dword [esp + 0x40]
cmp dword [eax + 0xc], 0x5ef790
je 0x4ecfb0
lea edx, [esp + 0xa8]
mov dword [esp + 8], edx
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.004de590
test eax, eax
jne 0x4ed488
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4ed162
mov word [esp + 0x6c], dx
movsx edx, dx
shr edx, 0x1f
mov dword [esp + 0x1c], edx
call fcn.004dd7ec
mov dword [esp + 0x40], eax
inc dword [eax]
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x4ed040
test esi, esi
jne 0x4ed040
test ebx, ebx
jne 0x4ed040
mov bx, word [esp + 0x96]
mov word [esp + 0x28], bx
mov dword [esp + 0x70], 0x7fffffff
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4ec7c0
cmp word [esp + 0x28], 0x6f
je 0x4ed442
cmp word [esp + 0x28], 0x78
je 0x4ed40f
cmp word [esp + 0x28], 0x58
je 0x4ed40f
mov eax, dword [esp + 0x28]
sub eax, 0x58
cmp ax, 0x20
ja case.0x4ec7d4.1
movzx eax, ax
jmp dword [eax*4 + 0x61d6b4]
mov eax, dword [esp + 0x68]
test eax, eax
jne 0x4ecfd9
mov eax, dword [esp + 0xa0]
test eax, eax
mov dword [esp + 0x48], 0
jle 0x4edaf2
lea edx, [esp + 0xac]
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004eb56c
mov esi, eax
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4ec9cd
nop
mov edx, dword [esp + 0x38]
mov dword [esp + 4], edx
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004ddcd8
mov ebx, dword [esp + 0x34]
cmp ebx, dword [esp + 0xac]
jl 0x4ed924
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x124]
mov dword [esp], ebx
call fcn.004ebefc
mov eax, dword [esp + 0xac]
sub dword [esp + 0x34], eax
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x4ec88c
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
dec eax
mov edx, dword [esp + 0x40]
mov dword [edx], eax
test eax, eax
jle 0x4ed47b
mov eax, dword [esp + 0xa0]
test eax, eax
jle 0x4ed028
cmp esi, eax
jge 0x4ed028
mov ecx, esi
sub ecx, eax
add dword [esp + 0x34], ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x28], ebp
mov ebp, esi
mov esi, dword [esp + 0x124]
jmp 0x4ec8ef
mov edx, 0x61d3aa
mov dword [esp + 8], 1
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.004ebdfc
inc ebp
cmp dword [esp + 0xa0], ebp
jle 0x4ed01c
test ebx, ebx
jne 0x4ec8c8
mov edx, 0x61d3a4
jmp 0x4ec8cd
mov eax, dword [esp + 0x40]
cmp dword [eax + 0xc], 0x5ef790
je 0x4ecfbf
lea ebx, [esp + 0xac]
mov dword [esp + 0x38], ebx
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x120]
mov dword [esp], ebx
call fcn.004de828
test eax, eax
jne 0x4ec300
mov eax, dword [esp + 0xac]
lea edx, [esp + 0xc4]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0050d734
mov dword [esp + 4], eax
lea ecx, [esp + 0xc4]
mov dword [esp], ecx
call fcn.004eb494
mov dword [esp + 0x40], eax
inc dword [eax]
mov bx, word [esp + 0x96]
mov word [esp + 0x28], bx
mov dword [esp + 0x48], 1
mov esi, 0xffffffff
cmp word [esp + 0x28], 0x47
je 0x4ecba4
cmp word [esp + 0x28], 0x58
je 0x4ecba4
cmp word [esp + 0x28], 0x45
je 0x4ecba4
mov eax, dword [esp + 0xa0]
test eax, eax
jle 0x4ec824
test esi, esi
js 0x4ec809
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x4ec824
mov eax, dword [esp + 0xa0]
cmp esi, eax
jge 0x4ec824
mov edx, esi
sub edx, eax
add dword [esp + 0x34], edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x4c], ebp
mov ebp, esi
mov esi, dword [esp + 0x124]
jmp 0x4eca27
mov edx, 0x61d3a4
mov dword [esp + 8], 1
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.004ebdfc
inc ebp
cmp dword [esp + 0xa0], ebp
jle 0x4ed068
test ebx, ebx
je 0x4eca00
mov edx, 0x61d3aa
jmp 0x4eca05
lea eax, [esp + 0xb8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x120]
mov dword [esp], edx
call fcn.004de234
test eax, eax
jne 0x4ec300
mov byte [esp + 0xc4], 0x25
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4ecd5b
mov byte [esp + 0xc5], 0x2d
lea edx, [esp + 0xc6]
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4eca8b
mov byte [edx], 0x23
inc edx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4eca97
mov byte [edx], 0x30
inc edx
test ebx, ebx
je 0x4eca9f
mov byte [edx], 0x20
inc edx
test esi, esi
je 0x4ecaa7
mov byte [edx], 0x2b
inc edx
mov eax, dword [esp + 0xa0]
test eax, eax
jne 0x4ed4c2
mov esi, 0x140
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x4ecb04
mov byte [edx], 0x2e
inc edx
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x61d46f
mov dword [esp], edx
mov dword [esp + 0x1c], edx
call sub.msvcrt.dll_sprintf
mov edx, dword [esp + 0x1c]
add edx, eax
mov ecx, dword [esp + 0xa4]
mov eax, 0x7fffffff
sub eax, esi
cmp eax, ecx
jl 0x4ec2e9
add esi, ecx
mov cl, byte [esp + 0x96]
mov byte [edx], cl
mov byte [edx + 1], 0
call fcn.004dd7ec
mov dword [esp + 0x40], eax
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004eb9dc
test eax, eax
je 0x4ec2e9
mov ebx, dword [esp + 0x40]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4eda85
fld qword [esp + 0xb8]
fstp qword [esp + 8]
lea edx, [esp + 0xc4]
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004eb9dc
test eax, eax
je 0x4ec2e9
mov bx, word [esp + 0x96]
mov word [esp + 0x28], bx
mov dword [esp + 0x48], 1
mov esi, 0xffffffff
lea edx, [esp + 0xac]
mov dword [esp + 0x38], edx
cmp word [esp + 0x28], 0x47
jne 0x4ec992
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 4]
test eax, eax
je 0x4ed859
mov dword [esp], eax
call fcn.0050dcbc
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004eb838
jmp 0x4ec9aa
mov eax, str.format_string_ended_in_middle_of_field_specifier
mov edx, dword [esp + 0x120]
test edx, edx
je 0x4ec300
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call fcn.004eb494
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x120]
mov dword [esp], ebx
call fcn.004e1100
jmp 0x4ec300
mov eax, dword [esp + 0x12c]
dec eax
cmp eax, dword [esp + 0x44]
jle 0x4ec5a7
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x130]
mov eax, dword [ecx + edx*4]
cmp dword [eax + 0xc], 0x5ef790
je 0x4ed171
lea edx, [esp + 0xa0]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x120]
mov dword [esp], eax
call fcn.004de828
test eax, eax
jne 0x4ec300
mov eax, dword [esp + 0xa0]
test eax, eax
js 0x4ed1cc
inc dword [esp + 0x44]
add ebp, dword [esp + 0x18]
jmp 0x4ec5e1
mov eax, dword [esp + 0x12c]
dec eax
cmp dword [esp + 0x44], eax
jge 0x4ec5a7
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x130]
mov eax, dword [ecx + edx*4]
cmp dword [eax + 0xc], 0x5ef790
je 0x4ed180
lea edx, [esp + 0xa4]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x120]
mov dword [esp], eax
call fcn.004de828
test eax, eax
jne 0x4ec300
mov eax, dword [esp + 0xa4]
test eax, eax
js 0x4ed1e2
inc dword [esp + 0x44]
add ebp, dword [esp + 0x18]
jmp 0x4ec629
add ebp, dword [esp + 0x18]
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.0050d834
mov dword [esp + 0x18], eax
movzx eax, word [esp + 0x96]
mov dword [esp + 0x68], 1
jmp 0x4ec43f
add ebp, dword [esp + 0x18]
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.0050d834
mov dword [esp + 0x18], eax
movzx eax, word [esp + 0x96]
cmp ax, 0x6c
je 0x4ed7bd
mov dword [esp + 0x48], 0
mov dword [esp + 0x60], 1
mov dword [esp + 0x50], 0
jmp 0x4ec484
lea edx, [esp + 0xc5]
jmp 0x4eca7f
cmp word [esp + 0x28], 0x75
je 0x4ed833
cmp word [esp + 0x28], 0x6f
je 0x4ed81e
mov dword [esp + 0x78], 0x10
mov dword [esp + 0x7c], 4
mov esi, dword [esp + 0x50]
test esi, esi
je 0x4ed332
mov eax, dword [esp + 0x6c]
movzx edx, ax
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], 0
test ax, ax
je 0x4ed2f9
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov esi, dword [esp + 0x78]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x18]
xor ecx, ecx
xor ebx, ebx
lea esi, [esi]
add ecx, 1
adc ebx, 0
movzx eax, ax
cdq
idiv esi
test ax, ax
jne 0x4ecde0
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
add ecx, 0xffffffff
adc ebx, 0xffffffff
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ebx
call fcn.004dd7ec
mov dword [esp + 0x60], eax
mov ebx, dword [esp + 0x74]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.004eb838
mov eax, dword [esp + 0x60]
mov esi, dword [eax + 4]
test esi, esi
je 0x4edad4
mov edx, dword [esp + 0x54]
or edx, dword [esp + 0x50]
je 0x4ed0da
mov eax, dword [esp + 0x78]
cdq
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
add esi, dword [esp + 0x28]
mov dword [esp + 0x50], 0
mov dword [esp + 0x6c], 0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x78], eax
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x88], ebp
mov ebp, esi
mov dword [esp + 0x8c], edi
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
jmp 0x4ecee4
add eax, 0x57
mov byte [ebp], al
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.005d9bbc
mov esi, eax
mov edi, edx
add dword [esp + 0x28], 0xffffffff
adc dword [esp + 0x2c], 0xffffffff
dec ebp
mov eax, dword [esp + 0x28]
and eax, dword [esp + 0x2c]
inc eax
je 0x4ed0c4
test ebx, ebx
je 0x4ecf3f
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x4ecf3f
cmp eax, dword [esp + 0x6c]
jle 0x4ecf37
cmp dword [esp + 0x50], 0x23
ja 0x4ecf37
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0x6c]
mov eax, dword [eax + ecx*4]
xor edx, edx
mov cl, byte [esp + 0x50]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x4ecf22
mov edx, eax
xor eax, eax
mov ecx, esi
or ecx, eax
mov eax, edi
or eax, edx
mov esi, ecx
mov edi, eax
inc dword [esp + 0x6c]
add dword [esp + 0x50], 0x1c
mov ecx, dword [esp + 0x7c]
sub dword [esp + 0x50], ecx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.005d9cc0
cmp eax, 9
jg 0x4ecea4
add eax, 0x30
mov byte [ebp], al
jmp 0x4eceaa
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x4ed528
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x4ed870
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4ed7a7
lea eax, [esp + 0xc4]
mov dword [esp], eax
call fcn.004defd0
mov esi, eax
jmp 0x4ed537
xor eax, eax
jmp 0x4ec31f
mov edx, dword [eax + 0x10]
mov dword [esp + 0xa8], edx
jmp 0x4ec73d
mov eax, dword [eax + 0x10]
mov dword [esp + 0xac], eax
lea ecx, [esp + 0xac]
mov dword [esp + 0x38], ecx
jmp 0x4ec940
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004eb56c
mov esi, eax
mov eax, dword [esp + 0xa4]
cmp esi, eax
jg 0x4ed995
mov bx, word [esp + 0x96]
mov word [esp + 0x28], bx
mov dword [esp + 0x48], 0
lea edx, [esp + 0xac]
mov dword [esp + 0x38], edx
jmp 0x4ec986
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], eax
mov ebp, dword [esp + 0x28]
add ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x5c]
add dword [esp + 0x44], ebx
mov esi, ebp
xor ebx, ebx
jmp 0x4ec2b0
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x4ed07c
mov bx, word [esp + 0x96]
mov word [esp + 0x28], bx
cmp bx, 0x64
je 0x4ed07c
mov dword [esp + 0x70], 0x7fffffff
jmp 0x4ec794
mov esi, ebp
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov ebp, dword [esp + 0x4c]
jmp 0x4ec824
test edx, edx
jne 0x4ed158
test esi, esi
je 0x4ed4f8
mov eax, 0x61d3a8
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004ebdfc
mov bx, word [esp + 0x96]
mov word [esp + 0x28], bx
mov dword [esp + 0x70], 0x7ffffffe
jmp 0x4ec794
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], eax
mov ebp, dword [esp + 0x88]
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x4ed645
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4ed39b
mov eax, dword [esp + 0xa4]
cmp dword [esp + 0x74], eax
jl 0x4ed759
mov dword [esp + 0x58], 0
mov ebx, dword [esp + 0x74]
cmp dword [esp + 0x70], ebx
jl 0x4ec2e9
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004ebefc
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
dec eax
mov edx, dword [esp + 0x60]
mov dword [edx], eax
test eax, eax
jg 0x4ecb73
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.004dd854
jmp 0x4ecb73
mov eax, 0x61d3a6
jmp 0x4ed091
shr edx, 0x1f
mov word [esp + 0x6c], 0
jmp 0x4ec754
mov eax, dword [eax + 0x10]
mov dword [esp + 0xa0], eax
jmp 0x4ecc66
mov eax, dword [eax + 0x10]
mov dword [esp + 0xa4], eax
jmp 0x4eccd6
lea eax, [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.004de960
test eax, eax
jne 0x4ed891
mov edx, dword [esp + 0xb4]
shr edx, 0x1f
mov word [esp + 0x6c], 0
jmp 0x4ec754
neg eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x4c], 1
jmp 0x4ecc6e
mov dword [esp + 0xa4], 0
jmp 0x4eccde
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x60], ebx
test ebx, ebx
je 0x4eda92
mov edx, ebx
shl edx, 2
lea eax, [edx*8]
sub eax, edx
cdq
idiv dword [esp + 0x7c]
mov ecx, 0x1c
sub ecx, edx
mov esi, 0xffffffff
shl esi, cl
mov eax, ebx
cdq
mov ecx, ebx
mov ebx, edx
shld edx, eax, 2
add eax, eax
add eax, eax
shld ebx, ecx, 5
shl ecx, 5
sub ecx, eax
sbb ebx, edx
mov eax, dword [esp + 0x7c]
cdq
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.005d98d4
mov ecx, eax
mov ebx, edx
add ecx, 1
adc ebx, 0
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ebx
mov ecx, dword [esp + 0xd0]
mov ebx, dword [esp + 0x60]
mov ecx, dword [ecx + ebx*4 - 4]
mov dword [esp + 0x60], ecx
test ecx, esi
jne 0x4ed2ba
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x6c], ebp
mov ebp, esi
mov dword [esp + 0x74], edi
mov esi, eax
mov edi, edx
shr ebp, cl
add eax, 0xffffffff
adc edx, 0xffffffff
test dword [esp + 0x60], ebp
je 0x4ed294
mov dword [esp + 0x18], ebx
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edi
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x74]
cmp dword [esp + 0x54], 0
jg 0x4ec2e9
jl 0x4ed2d5
cmp dword [esp + 0x50], 0x7fffffff
ja 0x4ec2e9
mov eax, dword [esp + 0x54]
or eax, dword [esp + 0x50]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
jne 0x4ece01
cmp word [esp + 0x28], 0x6f
je 0x4ed95c
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x74], 1
mov dword [esp + 0x50], 1
mov dword [esp + 0x54], 0
jmp 0x4ece1f
mov ebx, dword [esp + 0x60]
test ebx, ebx
jne 0x4ed6ad
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x4ed1f2
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0
test eax, eax
je 0x4ed2f9
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov esi, dword [esp + 0x78]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x18]
xor ecx, ecx
xor ebx, ebx
nop
add ecx, 1
adc ebx, 0
xor edx, edx
div esi
test eax, eax
jne 0x4ed388
jmp 0x4ecdf1
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4ed10b
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004eb56c
mov esi, dword [esp + 0x74]
add esi, eax
mov eax, dword [esp + 0xa0]
cmp esi, eax
jge 0x4ed10b
mov edx, esi
sub edx, eax
add dword [esp + 0x70], edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov ebx, esi
mov esi, dword [esp + 0x40]
nop
mov dword [esp + 8], 1
mov dword [esp + 4], 0x61d3aa
mov dword [esp], esi
call fcn.004ebdfc
inc ebx
cmp dword [esp + 0xa0], ebx
jg 0x4ed3e0
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
jmp 0x4ed10b
mov dword [esp + 8], 2
mov dword [esp + 4], 0x61d46c
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004ebdfc
sub dword [esp + 0x70], 2
mov bx, word [esp + 0x96]
mov word [esp + 0x28], bx
jmp 0x4ec7c0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x61d3aa
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004ebdfc
dec dword [esp + 0x70]
dec dword [esp + 0xa4]
mov bx, word [esp + 0x96]
mov word [esp + 0x28], bx
jmp 0x4ec7c0
mov dword [esp], edx
call fcn.004dd854
jmp 0x4ec88c
lea eax, [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.004de960
test eax, eax
jne 0x4ed9e0
mov edx, dword [esp + 0xb0]
mov dword [esp + 0xa8], edx
jmp 0x4ec73d
mov dword [esp + 8], eax
mov dword [esp + 4], 0x61d46f
mov dword [esp], edx
mov dword [esp + 0x1c], edx
call sub.msvcrt.dll_sprintf
mov edx, dword [esp + 0x1c]
add edx, eax
mov esi, dword [esp + 0xa0]
cmp esi, 0x140
jg 0x4ecabb
jmp 0x4ecab6
mov eax, 0x61d3a4
jmp 0x4ed091
lea eax, [esp + 0x98]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x124]
mov dword [esp], ebx
call fcn.004ddcd8
mov eax, dword [esp + 0x98]
jmp 0x4ec281
movsx eax, word [esp + 0x6c]
mov dword [esp], eax
call fcn.004de46c
mov esi, eax
inc dword [esi]
mov eax, dword [esi + 4]
mov dword [esp + 0x48], eax
test eax, eax
je 0x4edaad
mov edx, dword [esi + 8]
mov dword [esp + 0x38], edx
mov dword [esp + 0xac], edx
mov eax, dword [esp + 0x48]
cmp byte [eax], 0x2d
je 0x4ed840
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4ed5c8
mov eax, dword [esp + 0xa4]
cmp dword [esp + 0x38], eax
jl 0x4ed659
mov dword [esp + 0x58], 0
mov ebx, dword [esp + 0x70]
cmp dword [esp + 0x38], ebx
jg 0x4ec2e9
mov edx, dword [esp + 0x38]
mov dword [esp + 8], edx
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004ebdfc
mov eax, dword [esi]
dec eax
mov dword [esi], eax
test eax, eax
jg 0x4ecb73
mov dword [esp], esi
call fcn.004dd854
jmp 0x4ecb73
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4ed584
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004eb56c
add eax, dword [esp + 0xac]
mov dword [esp + 0xac], eax
mov edx, dword [esp + 0xa0]
cmp eax, edx
jge 0x4ed584
sub eax, edx
add dword [esp + 0x70], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x68], eax
mov ebx, dword [esp + 0x40]
nop
mov dword [esp + 8], 1
mov dword [esp + 4], 0x61d3aa
mov dword [esp], ebx
call fcn.004ebdfc
mov eax, dword [esp + 0xac]
inc eax
mov dword [esp + 0xac], eax
cmp dword [esp + 0xa0], eax
jg 0x4ed608
mov eax, dword [esp + 0x68]
mov dword [esp + 0x18], eax
jmp 0x4ed584
lea edx, [esp + 0xc4]
mov dword [esp], edx
call fcn.0052532c
jmp 0x4ed0e6
mov ecx, dword [esp + 0x38]
sub ecx, eax
add dword [esp + 0x70], ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x58], eax
mov ebx, dword [esp + 0x40]
nop
mov dword [esp + 8], 1
mov dword [esp + 4], 0x61d3aa
mov dword [esp], ebx
call fcn.004ebdfc
mov eax, dword [esp + 0xac]
inc eax
mov dword [esp + 0xac], eax
cmp dword [esp + 0xa4], eax
jg 0x4ed670
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], eax
jmp 0x4ed57c
mov esi, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x60], ecx
or ecx, esi
je 0x4eda92
mov eax, dword [esp + 0x78]
cdq
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov eax, esi
mov edx, dword [esp + 0x60]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov ecx, ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x38], esi
mov dword [esp + 0x6c], edi
xor esi, esi
xor edi, edi
mov dword [esp + 0x74], ecx
add esi, 1
adc edi, 0
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.005d9bbc
mov ebx, edx
invalid