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

Disassembly:
push 0xffffffffffffffff
push 0x42026d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x218
mov eax, dword [0x427354]
xor eax, dword [esp + 0x224]
push ebx
mov ebx, dword [esp + 0x22c]
push ebp
push esi
mov dword [esp + 0x220], eax
push edi
mov dword [esp + 0x1c], ecx
lea ebp, [ebx + 0x20]
mov eax, dword [esp + 0x1c]
xor esi, esi
push 0xffffffffffffffff
push esi
add eax, 0x64
push eax
lea ecx, [ebx + 4]
mov dword [ebx], esi
call fcn.004016a8
mov eax, 0x42448d
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40f8c0
sub eax, ecx
push eax
push 0x42448d
mov ecx, ebp
call fcn.00401897
mov eax, dword [ebx + 0x5c]
mov ecx, dword [eax + 4]
lea edi, [ebx + 0x58]
push ecx
mov ecx, edi
call fcn.00404757
mov eax, dword [edi + 4]
mov dword [eax + 4], eax
mov eax, dword [edi + 4]
mov dword [edi + 8], esi
mov dword [eax], eax
mov eax, dword [edi + 4]
push 0xffffffffffffffff
push esi
lea ecx, [ebx + 0x3c]
mov dword [eax + 8], eax
call fcn.00401906
mov eax, 0xf
mov byte [esp + 0x15], 0
mov byte [esp + 0x17], 0
mov byte [esp + 0x10], 0
mov byte [esp + 0x16], 0
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], esi
mov byte [esp + 0x78], 0
mov dword [esp + 0x230], esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], esi
mov byte [esp + 0x24], 0
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], esi
mov byte [esp + 0x40], 0
mov ebx, dword [esp + 0x238]
mov byte [esp + 0x230], 2
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x5c]
test eax, eax
jbe 0x40f9d8
mov eax, dword [esi + 0x60]
lea ecx, [esi + 0x48]
mov edi, 0x10
cmp eax, edi
jb 0x40f981
mov eax, dword [ecx + 4]
jmp 0x40f984
lea eax, [ecx + 4]
mov dl, byte [eax]
cmp dword [ecx + 0x18], edi
mov byte [esp + 0x18], dl
jb 0x40f994
mov eax, dword [ecx + 4]
jmp 0x40f997
lea eax, [ecx + 4]
lea edx, [eax + 1]
cmp dword [ecx + 0x18], edi
jb 0x40f9a4
mov esi, dword [ecx + 4]
jmp 0x40f9a7
lea esi, [ecx + 4]
cmp dword [ecx + 0x18], edi
jb 0x40f9b1
mov edi, dword [ecx + 4]
jmp 0x40f9b4
lea edi, [ecx + 4]
test esi, esi
jne 0x40f9bc
xor eax, eax
jmp 0x40f9c0
mov eax, esi
sub eax, edi
test edx, edx
jne 0x40f9cd
push edx
push eax
call fcn.00401906
jmp 0x40f9fe
sub edx, esi
push edx
push eax
call fcn.00401906
jmp 0x40f9fe
mov eax, dword [esi + 0x40]
test eax, eax
je 0x410b23
push eax
push 1
lea eax, [esp + 0x20]
push 1
push eax
call fcn.0041629d
add esp, 0x10
cmp eax, 1
jne 0x410b1f
mov cl, byte [esp + 0x18]
cmp cl, 0xa
jne 0x40fa0e
mov eax, dword [esp + 0x1c]
inc dword [eax + 0x3c]
mov eax, dword [ebx]
cmp eax, 5
jne 0x40fadf
mov ecx, dword [esp + 0x18]
push ecx
lea edi, [ebx + 0x3c]
push 1
mov ecx, edi
call fcn.00408d06
cmp byte [esp + 0x18], 0x3e
mov edx, dword [edi + 0x14]
jne 0x40f962
cmp edx, 3
jl 0x40f962
mov esi, dword [edi + 0x18]
cmp esi, 0x10
lea eax, [edi + 4]
jb 0x40fa50
mov ecx, dword [eax]
jmp 0x40fa52
mov ecx, eax
cmp byte [edx + ecx - 2], 0x2d
jne 0x40f962
cmp esi, 0x10
jb 0x40fa64
mov eax, dword [eax]
cmp byte [edx + eax - 3], 0x2d
jne 0x40f962
add edx, 0xfffffffd
push edx
xor esi, esi
push esi
lea ecx, [esp + 0x14c]
push ecx
mov ecx, edi
call fcn.00401662
push 0xffffffffffffffff
push esi
push eax
mov ecx, edi
mov byte [esp + 0x23c], 3
call fcn.004016a8
mov eax, dword [esp + 0x15c]
mov edi, 0x10
cmp eax, edi
mov byte [esp + 0x230], 2
jb 0x40fac0
mov edx, dword [esp + 0x148]
push edx
call fcn.00415610
add esp, 4
mov dword [esp + 0x15c], 0xf
mov dword [esp + 0x158], esi
mov byte [esp + 0x148], 0
jmp 0x410458
cmp eax, 4
jne 0x40fbb5
mov eax, dword [ebx + 0x50]
test eax, eax
mov esi, ebp
jne 0x40fb01
movsx edx, cl
push edx
call fcn.0041702d
add esp, 4
test eax, eax
je 0x40fb04
lea esi, [ebx + 0x3c]
mov eax, dword [esp + 0x18]
push eax
push 1
mov ecx, esi
call fcn.00408d06
cmp byte [esp + 0x18], 0x3e
mov eax, dword [esi + 0x14]
jne 0x40f962
cmp eax, 2
jl 0x40f962
mov ecx, dword [esi + 0x18]
mov edi, 0x10
cmp ecx, edi
jb 0x40fb3a
mov ecx, dword [esi + 4]
jmp 0x40fb3d
lea ecx, [esi + 4]
cmp byte [ecx + eax - 2], 0x3f
jne 0x40f962
add eax, 0xfffffffe
push eax
push 0
lea eax, [esp + 0x130]
push eax
mov ecx, esi
call fcn.00401662
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
mov byte [esp + 0x23c], 4
call fcn.004016a8
cmp dword [esp + 0x140], edi
mov byte [esp + 0x230], 2
jb 0x40fb92
mov ecx, dword [esp + 0x12c]
push ecx
call fcn.00415610
add esp, 4
mov dword [esp + 0x140], 0xf
mov dword [esp + 0x13c], 0
mov byte [esp + 0x12c], 0
jmp 0x410451
cmp cl, 0x22
jne 0x40fbcc
mov al, byte [esp + 0x17]
test al, al
sete cl
mov byte [esp + 0x17], cl
jmp 0x40f962
mov dl, byte [esp + 0x17]
test dl, dl
jne 0x40fd12
cmp cl, 0x3c
jne 0x40fbf9
cmp eax, 3
je 0x40ff56
test eax, eax
jne 0x410648
mov dword [ebx], 1
jmp 0x40f962
cmp cl, 0x3e
je 0x40ffc9
cmp cl, 0x2f
jne 0x40fc43
cmp eax, 1
jne 0x40fc84
mov eax, 0x42448d
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40fc14
sub eax, edx
mov edx, dword [ebp + 0x14]
push eax
push 0x42448d
push edx
push 0
mov ecx, ebp
call fcn.004049b6
test eax, eax
jne 0x40fc3f
mov dword [ebx], 2
jmp 0x40f962
mov cl, byte [esp + 0x18]
cmp cl, 0x3f
jne 0x40fc84
cmp dword [ebx], 1
jne 0x40fc84
mov eax, 0x42448d
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40fc55
sub eax, edx
push eax
mov eax, dword [ebp + 0x14]
push 0x42448d
push eax
push 0
mov ecx, ebp
call fcn.004049b6
test eax, eax
jne 0x40fc80
mov dword [ebx], 4
jmp 0x40f962
mov cl, byte [esp + 0x18]
movzx ecx, cl
push ecx
call fcn.0041702d
add esp, 4
test eax, eax
je 0x40fd05
mov eax, 0x42448d
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40fca0
sub eax, edx
mov edx, dword [ebp + 0x14]
push eax
push 0x42448d
push edx
push 0
mov ecx, ebp
call fcn.004049b6
test eax, eax
je 0x40fcc5
mov byte [esp + 0x15], 1
cmp dword [ebx], 1
jne 0x40f962
mov eax, 0x42249c
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40fcd6
sub eax, edx
push eax
mov eax, dword [ebp + 0x14]
push 0x42249c
push eax
push 0
mov ecx, ebp
call fcn.004049b6
test eax, eax
jne 0x40f962
mov dword [ebx], 5
jmp 0x40f962
mov cl, byte [esp + 0x18]
cmp cl, 0x20
jbe 0x410a5f
mov eax, dword [ebx]
test eax, eax
jne 0x40fd5e
mov dword [ebx], 3
mov al, byte [esp + 0x15]
test al, al
je 0x40fd4b
mov eax, 0x422498
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40fd30
sub eax, edx
push eax
push 0x422498
mov ecx, ebp
call fcn.00404a20
mov byte [esp + 0x15], 0
mov eax, dword [esp + 0x18]
push eax
push 1
mov ecx, ebp
call fcn.00408d06
jmp 0x40f962
cmp eax, 1
jne 0x40fd1e
mov al, byte [esp + 0x15]
test al, al
je 0x40fef2
mov al, byte [esp + 0x10]
test al, al
je 0x40fee3
mov al, byte [esp + 0x16]
test al, al
je 0x40feed
mov eax, dword [esp + 0x34]
test eax, eax
jbe 0x40feed
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x164]
push edx
call fcn.00411630
add esp, 8
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x80]
mov byte [esp + 0x23c], 0x15
call fcn.004016a8
mov eax, dword [esp + 0x178]
mov edi, 0x10
cmp eax, edi
mov byte [esp + 0x230], 2
jb 0x40fde9
mov eax, dword [esp + 0x164]
push eax
call fcn.00415610
add esp, 4
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x1d4]
mov esi, 0xf
push edx
mov dword [esp + 0x180], esi
mov dword [esp + 0x17c], 0
mov byte [esp + 0x16c], 0
call fcn.00411630
add esp, 8
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x23c], 0x16
call fcn.004016a8
cmp dword [esp + 0x1e8], edi
mov byte [esp + 0x230], 2
jb 0x40fe54
mov eax, dword [esp + 0x1d4]
push eax
call fcn.00415610
add esp, 4
lea ecx, [esp + 0x74]
push ecx
lea ecx, [ebx + 0x58]
mov dword [esp + 0x1ec], esi
mov dword [esp + 0x1e8], 0
mov byte [esp + 0x1d8], 0
call fcn.0040e690
push 0xffffffffffffffff
push 0
lea edx, [esp + 0x28]
push edx
mov ecx, eax
call fcn.004016a8
mov eax, 0x42448d
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40fe93
sub eax, edx
push eax
push 0x42448d
lea ecx, [esp + 0x7c]
call fcn.00401897
mov eax, 0x42448d
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40feb3
sub eax, edx
push eax
push 0x42448d
lea ecx, [esp + 0x28]
call fcn.00401897
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x48]
call fcn.004016a8
mov cl, byte [esp + 0x18]
jmp 0x40fee8
mov byte [esp + 0x10], 1
mov byte [esp + 0x16], 0
mov byte [esp + 0x15], 0
mov al, byte [esp + 0x10]
test al, al
jne 0x40ff15
mov ecx, ebp
test ecx, ecx
je 0x40f962
mov edx, dword [esp + 0x18]
push edx
push 1
call fcn.00408d06
jmp 0x40f962
cmp cl, 0x3d
jne 0x40ff24
mov byte [esp + 0x16], 1
jmp 0x40f962
mov al, byte [esp + 0x16]
test al, al
jne 0x40ff41
mov edx, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x78]
push 1
call fcn.00408d06
jmp 0x40f962
mov edx, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x24]
push 1
call fcn.00408d06
jmp 0x40f962
mov esi, dword [esp + 0x1c]
add esi, 0x48
push esi
lea edx, [esp + 0x19c]
push 0x3c
push edx
call fcn.0040f5d0
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
mov byte [esp + 0x23c], 5
call fcn.004016a8
cmp dword [esp + 0x1b0], 0x10
mov byte [esp + 0x230], 2
jb 0x40ffa6
mov eax, dword [esp + 0x19c]
push eax
call fcn.00415610
add esp, 4
mov dword [esp + 0x1b0], 0xf
mov dword [esp + 0x1ac], 0
mov byte [esp + 0x19c], 0
jmp 0x410451
mov eax, dword [ebx]
cmp eax, 1
jne 0x410349
mov eax, 0x422494
xor bl, bl
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ffe0
mov ecx, dword [esp + 0x88]
sub eax, edx
push eax
push 0x422494
push ecx
push 0
lea ecx, [esp + 0x84]
call fcn.004049b6
test eax, eax
je 0x4101a3
mov eax, dword [esp + 0x88]
test eax, eax
jbe 0x410090
push 0xffffffffffffffff
push 0
lea edx, [esp + 0x7c]
push edx
lea ecx, [esp + 0x48]
call fcn.004016a8
mov edi, dword [esp + 0x238]
lea eax, [esp + 0x3c]
push eax
lea ecx, [edi + 0x58]
call fcn.0040e690
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.004016a8
mov eax, 0x42448d
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410056
sub eax, edx
push eax
push 0x42448d
lea ecx, [esp + 0x7c]
call fcn.00401897
mov eax, 0x42448d
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410076
sub eax, edx
push eax
push 0x42448d
lea ecx, [esp + 0x28]
call fcn.00401897
jmp 0x410097
mov edi, dword [esp + 0x238]
mov eax, dword [esp + 0x50]
test eax, eax
jbe 0x4102b1
lea edx, [esp + 0x3c]
add edi, 0x58
push edx
mov ecx, edi
call fcn.0040e690
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x9c]
mov dword [esp + 0xb4], 0xf
mov dword [esp + 0xb0], 0
mov byte [esp + 0xa0], 0
call fcn.004016a8
mov eax, dword [esp + 0xa4]
test eax, eax
mov byte [esp + 0x230], 7
jle 0x41015b
cmp dword [esp + 0xa8], 0x10
mov ecx, dword [esp + 0x94]
jae 0x41010c
lea ecx, [esp + 0x94]
cmp byte [eax + ecx - 1], 0x2f
jne 0x41015b
dec eax
push eax
push 0
lea eax, [esp + 0x1f4]
push eax
lea ecx, [esp + 0x9c]
call fcn.00401662
mov esi, eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
mov byte [esp + 0x234], 8
call fcn.0040e690
push 0xffffffffffffffff
push 0
push esi
mov ecx, eax
call fcn.004016a8
lea ecx, [esp + 0x1ec]
call fcn.0040165a
mov bl, 1
cmp dword [esp + 0xa8], 0x10
mov byte [esp + 0x230], 2
jb 0x41017d
mov edx, dword [esp + 0x94]
push edx
call fcn.00415610
add esp, 4
test bl, bl
mov dword [esp + 0xa8], 0xf
mov dword [esp + 0xa4], 0
mov byte [esp + 0x94], 0
je 0x41030d
push ebp
lea ecx, [esp + 0x10c]
push 0x422490
push ecx
call fcn.00404898
push 0x42248c
push eax
lea edx, [esp + 0x190]
push edx
mov byte [esp + 0x248], 0xa
call fcn.0040484c
mov ebx, dword [esp + 0x34]
lea esi, [ebx + 0x48]
push esi
push eax
lea eax, [esp + 0x1d4]
push eax
mov byte [esp + 0x254], 0xb
call fcn.00408e14
add esp, 0x24
push 0xffffffffffffffff
xor edi, edi
push edi
push eax
mov ecx, esi
mov byte [esp + 0x23c], 0xc
call fcn.004016a8
mov eax, dword [esp + 0x1cc]
mov esi, 0x10
cmp eax, esi
jb 0x410227
mov ecx, dword [esp + 0x1b8]
push ecx
call fcn.00415610
add esp, 4
cmp dword [esp + 0x194], esi
mov dword [esp + 0x1cc], 0xf
mov dword [esp + 0x1c8], edi
mov byte [esp + 0x1b8], 0
jb 0x41025a
mov edx, dword [esp + 0x180]
push edx
call fcn.00415610
add esp, 4
cmp dword [esp + 0x120], esi
mov dword [esp + 0x194], 0xf
mov dword [esp + 0x190], edi
mov byte [esp + 0x180], 0
mov byte [esp + 0x230], 2
jb 0x410295
mov eax, dword [esp + 0x10c]
push eax
call fcn.00415610
add esp, 4
mov dword [esp + 0x120], 0xf
mov dword [esp + 0x11c], edi
mov byte [esp + 0x10c], 0
jmp 0x410311
mov eax, dword [edi + 0x34]
test eax, eax
jle 0x41030d
cmp dword [ebp + 0x18], 0x10
jb 0x4102c3
mov ecx, dword [ebp + 4]
jmp 0x4102c6
lea ecx, [ebp + 4]
cmp byte [ecx + eax - 1], 0x2f
jne 0x41030d
dec eax
push eax
push 0
lea eax, [esp + 0x210]
push eax
mov ecx, ebp
call fcn.00401662
push 0xffffffffffffffff
push 0
push eax
mov ecx, ebp
mov byte [esp + 0x23c], 9
call fcn.004016a8
lea ecx, [esp + 0x208]
mov byte [esp + 0x230], 2
call fcn.0040165a
jmp 0x4101a3
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x78]
test eax, eax
je 0x410337
mov eax, 0x422494
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410320
sub eax, edx
push eax
push 0x422494
lea ecx, [ebx + 0x64]
call fcn.00404a20
push 0xffffffffffffffff
push 0
push ebp
lea ecx, [ebx + 0x64]
call fcn.00403fa1
jmp 0x41044a
cmp eax, 2
jne 0x41099e
mov edi, dword [esp + 0x1c]
push 1
push 0xffffffffffffffff
lea ecx, [esp + 0x18]
push ecx
lea ebx, [edi + 0x64]
mov ecx, ebx
mov byte [esp + 0x1c], 0x2f
call fcn.00408d66
mov esi, eax
cmp esi, 0xffffffff
jne 0x410380
mov eax, dword [edi + 0x78]
test eax, eax
je 0x4106ed
push 0xffffffffffffffff
lea edx, [esi + 1]
push edx
lea eax, [esp + 0x60]
push eax
mov ecx, ebx
call fcn.00401662
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov edi, 0x10
cmp ecx, edi
mov byte [esp + 0x230], 0xe
jb 0x4103ae
mov ecx, dword [ebp + 4]
jmp 0x4103b1
lea ecx, [ebp + 4]
push eax
push ecx
mov ecx, dword [esp + 0x74]
push ecx
push 0
lea ecx, [esp + 0x68]
call fcn.004049b6
test eax, eax
jne 0x4107aa
cmp esi, 0xffffffff
push ecx
mov ecx, ebx
mov edx, esp
jne 0x4103fe
mov dword [esp + 0xb0], esp
push edx
call fcn.0040f4a0
push ecx
mov eax, esp
mov dword [esp + 0xb4], esp
push eax
mov ecx, ebx
call fcn.00408cba
lea ecx, [esp + 0xb8]
push ecx
jmp 0x410432
mov dword [esp + 0xb4], esp
push edx
call fcn.0040f4a0
push ecx
lea eax, [esp + 0x12c]
mov dword [esp + 0xb8], esp
mov edi, esp
push eax
mov ecx, ebx
call fcn.00408cba
mov ecx, dword [eax]
add ecx, esi
lea edx, [esp + 0xb4]
mov dword [edi], ecx
push edx
mov ecx, ebx
call fcn.00408c6b
lea ecx, [esp + 0x58]
mov byte [esp + 0x230], 2
call fcn.0040165a
mov ebx, dword [esp + 0x238]
xor esi, esi
mov edi, 0x10
cmp dword [esp + 0x88], esi
jbe 0x41054e
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0xd4]
push ecx
call fcn.00411630
add esp, 8
push 0xffffffffffffffff
push esi
push eax
lea ecx, [esp + 0x80]
mov byte [esp + 0x23c], 0x18
call fcn.004016a8
cmp dword [esp + 0xe8], edi
mov byte [esp + 0x230], 2
jb 0x4104b3
mov edx, dword [esp + 0xd4]
push edx
call fcn.00415610
add esp, 4
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0xf0]
push ecx
mov dword [esp + 0xf0], 0xf
mov dword [esp + 0xec], esi
mov byte [esp + 0xdc], 0
call fcn.00411630
add esp, 8
push 0xffffffffffffffff
push esi
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x23c], 0x19
call fcn.004016a8
cmp dword [esp + 0x104], edi
mov byte [esp + 0x230], 2
jb 0x410518
mov edx, dword [esp + 0xf0]
push edx
call fcn.00415610
add esp, 4
lea eax, [esp + 0x74]
push eax
lea ecx, [ebx + 0x58]
mov dword [esp + 0x108], 0xf
mov dword [esp + 0x104], esi
mov byte [esp + 0xf4], 0
call fcn.0040e690
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.004016a8
lea edx, [esp + 0xb4]
push ebp
push edx
call fcn.00411630
add esp, 8
push 0xffffffffffffffff
push esi
push eax
mov ecx, ebp
mov byte [esp + 0x23c], 0x1a
call fcn.004016a8
cmp dword [esp + 0xcc], edi
mov byte [esp + 0x230], 2
jb 0x410593
mov eax, dword [esp + 0xb8]
push eax
call fcn.00415610
add esp, 4
cmp dword [ebx], 5
mov eax, dword [esp + 0x54]
mov dword [esp + 0xcc], 0xf
mov dword [esp + 0xc8], esi
mov byte [esp + 0xb8], 0
jne 0x41093b
cmp eax, edi
jb 0x4105cb
mov ecx, dword [esp + 0x40]
push ecx
call fcn.00415610
add esp, 4
cmp dword [esp + 0x38], edi
mov dword [esp + 0x54], 0xf
mov dword [esp + 0x50], esi
mov byte [esp + 0x40], 0
jb 0x4105ef
mov edx, dword [esp + 0x24]
push edx
call fcn.00415610
add esp, 4
cmp dword [esp + 0x8c], edi
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], esi
mov byte [esp + 0x24], 0
mov dword [esp + 0x230], 0xffffffff
jb 0x410621
mov eax, dword [esp + 0x78]
push eax
call fcn.00415610
add esp, 4
mov ebx, dword [esp + 0x238]
mov dword [esp + 0x8c], 0xf
mov dword [esp + 0x88], 0
mov byte [esp + 0x78], 0
jmp 0x40f8a0
mov edi, 0xf
mov eax, str.Unexpected__
mov dword [esp + 0x70], edi
mov dword [esp + 0x6c], 0
mov byte [esp + 0x5c], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410666
sub eax, edx
push eax
push str.Unexpected__
lea ecx, [esp + 0x60]
call fcn.00401897
lea ecx, [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x234], 6
call fcn.0040f6e0
mov eax, dword [esp + 0x70]
mov esi, 0x10
cmp eax, esi
jb 0x4106ae
mov edx, dword [esp + 0x5c]
push edx
call fcn.00415610
add esp, 4
cmp dword [esp + 0x54], esi
jb 0x4106c1
mov eax, dword [esp + 0x40]
push eax
call fcn.00415610
add esp, 4
mov eax, dword [esp + 0x38]
xor ebx, ebx
cmp eax, esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
jb 0x4106e4
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00415610
add esp, 4
mov dword [esp + 0x34], ebx
jmp 0x410bd2
mov ebx, 0xf
mov eax, str.Unexpected_End
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xa4], 0
mov byte [esp + 0x94], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410714
sub eax, edx
push eax
push str.Unexpected_End
lea ecx, [esp + 0x98]
call fcn.00401897
lea eax, [esp + 0x90]
push eax
mov ecx, edi
mov byte [esp + 0x234], 0xd
call fcn.0040f6e0
mov eax, dword [esp + 0xa8]
mov esi, 0x10
cmp eax, esi
jb 0x410766
mov ecx, dword [esp + 0x94]
push ecx
call fcn.00415610
add esp, 4
cmp dword [esp + 0x54], esi
jb 0x410779
mov edx, dword [esp + 0x40]
push edx
call fcn.00415610
add esp, 4
mov eax, dword [esp + 0x38]
xor edi, edi
cmp eax, esi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], edi
mov byte [esp + 0x40], 0
jb 0x41079d
mov eax, dword [esp + 0x24]
push eax
call fcn.00415610
add esp, 4
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], edi
jmp 0x410a43
push ebp
lea edx, [esp + 0x10c]
push str.End_
push edx
call fcn.00404898
push str._Doesnt_Match_Start_
push eax
lea eax, [esp + 0xe4]
push eax
mov byte [esp + 0x248], 0xf
call fcn.0040484c
lea ecx, [esp + 0x70]
push ecx
push eax
lea edx, [esp + 0x10c]
push edx
mov byte [esp + 0x254], 0x10
call fcn.00408e14
push 0x424320
push eax
lea eax, [esp + 0xe0]
push eax
mov byte [esp + 0x260], 0x11
call fcn.0040484c
add esp, 0x30
mov ecx, dword [esp + 0x1c]
push eax
mov byte [esp + 0x234], 0x12
call fcn.0040f6e0
cmp dword [esp + 0xcc], edi
jb 0x41083c
mov ecx, dword [esp + 0xb8]
push ecx
call fcn.00415610
add esp, 4
mov eax, dword [esp + 0x104]
xor esi, esi
cmp eax, edi
mov ebx, 0xf
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xc8], esi
mov byte [esp + 0xb8], 0
jb 0x410874
mov edx, dword [esp + 0xf0]
push edx
call fcn.00415610
add esp, 4
cmp dword [esp + 0xe8], edi
mov dword [esp + 0x104], ebx
mov dword [esp + 0x100], esi
mov byte [esp + 0xf0], 0
jb 0x4108a3
mov eax, dword [esp + 0xd4]
push eax
call fcn.00415610
add esp, 4
cmp dword [esp + 0x120], edi
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xe4], esi
mov byte [esp + 0xd4], 0
jb 0x4108d2
mov ecx, dword [esp + 0x10c]
push ecx
call fcn.00415610
add esp, 4
cmp dword [esp + 0x70], edi
jb 0x4108e5
mov edx, dword [esp + 0x5c]
push edx
call fcn.00415610
add esp, 4
cmp dword [esp + 0x54], edi
mov dword [esp + 0x70], ebx
mov dword [esp + 0x6c], esi
mov byte [esp + 0x5c], 0
jb 0x410905
mov eax, dword [esp + 0x40]
push eax
call fcn.00415610
add esp, 4
cmp dword [esp + 0x38], edi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], esi
mov byte [esp + 0x40], 0
jb 0x410925
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00415610
add esp, 4
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], esi
cmp eax, edi
jmp 0x410bdf
cmp eax, edi
jb 0x41094c
mov eax, dword [esp + 0x40]
push eax
call fcn.00415610
add esp, 4
cmp dword [esp + 0x38], edi
mov dword [esp + 0x54], 0xf
mov dword [esp + 0x50], esi
mov byte [esp + 0x40], 0
jb 0x410970
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00415610
add esp, 4
cmp dword [esp + 0x8c], edi
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], esi
mov byte [esp + 0x24], 0
jb 0x410997
mov edx, dword [esp + 0x78]
push edx
call fcn.00415610
add esp, 4
mov al, 1
jmp 0x410bf5
xor ebx, ebx
mov edi, 0xf
mov eax, 0x42243c
mov dword [esp + 0x70], edi
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4109c0
sub eax, edx
push eax
push 0x42243c
lea ecx, [esp + 0x60]
call fcn.00401897
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x234], 0x13
call fcn.0040f6e0
mov eax, dword [esp + 0x70]
mov esi, 0x10
cmp eax, esi
jb 0x410a08
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.00415610
add esp, 4
cmp dword [esp + 0x54], esi
jb 0x410a1b
mov edx, dword [esp + 0x40]
push edx
call fcn.00415610
add esp, 4
cmp dword [esp + 0x38], esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], 0
jb 0x410a3b
mov eax, dword [esp + 0x24]
push eax
call fcn.00415610
add esp, 4
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], ebx
cmp dword [esp + 0x8c], esi
mov byte [esp + 0x24], 0
jb 0x410bf3
mov ecx, dword [esp + 0x78]
push ecx
jmp 0x410beb
mov ebx, 0xf
xor edi, edi
mov eax, str.Illegal_Character
mov dword [esp + 0x70], ebx
mov dword [esp + 0x6c], edi
mov byte [esp + 0x5c], 0
lea edx, [eax + 1]
jmp 0x410a80
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410a80
sub eax, edx
push eax
push str.Illegal_Character
lea ecx, [esp + 0x60]
call fcn.00401897
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x234], 0x14
call fcn.0040f6e0
mov eax, dword [esp + 0x70]
mov esi, 0x10
cmp eax, esi
jb 0x410ac8
mov eax, dword [esp + 0x5c]
push eax
call fcn.00415610
add esp, 4
cmp dword [esp + 0x54], esi
jb 0x410adb
mov ecx, dword [esp + 0x40]
push ecx
call fcn.00415610
add esp, 4
cmp dword [esp + 0x38], esi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], edi
mov byte [esp + 0x40], 0
jb 0x410afb
mov edx, dword [esp + 0x24]
push edx
call fcn.00415610
add esp, 4
cmp dword [esp + 0x8c], esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], edi
mov byte [esp + 0x24], 0
jb 0x410bf3
mov eax, dword [esp + 0x78]
push eax
jmp 0x410beb
mov esi, dword [esp + 0x1c]
cmp dword [ebx], 0
mov edi, 0xf
je 0x410b8e
mov eax, str.Unexpected_End_of_File
mov dword [esp + 0x70], edi
mov dword [esp + 0x6c], 0
mov byte [esp + 0x5c], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410b46
sub eax, edx
push eax
push str.Unexpected_End_of_File
lea ecx, [esp + 0x60]
call fcn.00401897
lea ecx, [esp + 0x58]
push ecx
mov ecx, esi
mov byte [esp + 0x234], 0x17
call fcn.0040f6e0
mov eax, dword [esp + 0x70]
mov esi, 0x10
cmp eax, esi
jb 0x410b93
mov edx, dword [esp + 0x5c]
push edx
call fcn.00415610
add esp, 4
jmp 0x410b93
mov esi, 0x10
cmp dword [esp + 0x54], esi
jb 0x410ba6
mov eax, dword [esp + 0x40]
push eax
call fcn.00415610
add esp, 4
cmp dword [esp + 0x38], esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], 0
mov byte [esp + 0x40], 0
jb 0x410bca
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00415610
add esp, 4
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x38], edi
cmp eax, esi
mov byte [esp + 0x24], 0
jb 0x410bf3
mov edx, dword [esp + 0x78]
push edx
call fcn.00415610
add esp, 4
xor al, al
mov ecx, dword [esp + 0x228]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x224]
xor ecx, dword [esp + 0x234]
call fcn.00416fe5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x224
ret 4