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

Disassembly:
push 0xffffffffffffffff
push 0x41cbd1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1b0
mov eax, dword [0x423354]
xor eax, dword [esp + 0x1bc]
push ebx
push ebp
push esi
mov dword [esp + 0x1b8], eax
push edi
mov dword [esp + 0x18], ecx
xor ebx, ebx
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1d0]
push 0xffffffffffffffff
push ebx
add eax, 0x64
push eax
lea ecx, [esi + 4]
mov edi, 0xf
mov byte [esp + 0x2b], bl
mov dword [esi], ebx
call fcn.00401695
mov eax, 0x420081
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x40ded5
sub eax, ecx
push eax
push 0x420081
lea ecx, [esi + 0x20]
call fcn.00401884
mov eax, dword [esi + 0x5c]
mov ecx, dword [eax + 4]
add esi, 0x58
push ecx
mov ecx, esi
call fcn.00403640
mov eax, dword [esi + 4]
mov dword [eax + 4], eax
mov eax, dword [esi + 4]
mov dword [esi + 8], ebx
mov dword [eax], eax
mov eax, dword [esi + 4]
mov dword [eax + 8], eax
mov byte [esp + 0x16], bl
mov byte [esp + 0x1e], bl
mov byte [esp + 0x10], bl
mov byte [esp + 0x17], bl
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov byte [esp + 0x1c8], 1
mov ebp, 0x10
lea ecx, [ecx]
mov esi, dword [esp + 0x18]
cmp dword [esi + 0x5c], ebx
jbe 0x40dfc1
mov eax, dword [esi + 0x60]
cmp eax, ebp
lea ecx, [esi + 0x48]
jb 0x40df68
mov eax, dword [ecx + 4]
jmp 0x40df6b
lea eax, [ecx + 4]
mov dl, byte [eax]
cmp dword [ecx + 0x18], ebp
mov byte [esp + 0x20], dl
jb 0x40df7b
mov eax, dword [ecx + 4]
jmp 0x40df7e
lea eax, [ecx + 4]
lea edx, [eax + 1]
cmp dword [ecx + 0x18], ebp
jb 0x40df8b
mov esi, dword [ecx + 4]
jmp 0x40df8e
lea esi, [ecx + 4]
cmp dword [ecx + 0x18], ebp
jb 0x40df98
mov edi, dword [ecx + 4]
jmp 0x40df9b
lea edi, [ecx + 4]
cmp esi, ebx
jne 0x40dfa3
xor eax, eax
jmp 0x40dfa7
mov eax, esi
sub eax, edi
cmp edx, ebx
jne 0x40dfb6
xor edx, edx
push edx
push eax
call fcn.004018f3
jmp 0x40dfe7
sub edx, esi
push edx
push eax
call fcn.004018f3
jmp 0x40dfe7
mov eax, dword [esi + 0x40]
cmp eax, ebx
je 0x40ed34
push eax
push 1
lea eax, [esp + 0x28]
push 1
push eax
call fcn.0041432c
add esp, 0x10
cmp eax, 1
jne 0x40ed30
mov cl, byte [esp + 0x20]
cmp cl, 0xa
jne 0x40dff7
mov eax, dword [esp + 0x18]
inc dword [eax + 0x3c]
mov edi, dword [esp + 0x1d0]
mov eax, dword [edi]
cmp eax, 4
jne 0x40e0cf
cmp dword [edi + 0x50], ebx
lea esi, [edi + 0x20]
jne 0x40e021
movsx ecx, cl
push ecx
call fcn.00414ecb
add esp, 4
test eax, eax
je 0x40e024
lea esi, [edi + 0x3c]
mov edx, dword [esp + 0x20]
push edx
push 1
mov ecx, esi
call fcn.0040735c
cmp byte [esp + 0x20], 0x3e
mov eax, dword [esi + 0x14]
jne 0x40df50
cmp eax, 2
jl 0x40df50
cmp dword [esi + 0x18], ebp
jb 0x40e053
mov ecx, dword [esi + 4]
jmp 0x40e056
lea ecx, [esi + 4]
cmp byte [ecx + eax - 2], 0x3f
jne 0x40df50
add eax, 0xfffffffe
push eax
push ebx
lea ecx, [esp + 0x18c]
push ecx
mov ecx, esi
call fcn.0040164f
push 0xffffffffffffffff
push ebx
push eax
mov ecx, esi
mov byte [esp + 0x1d4], 2
call fcn.00401695
cmp dword [esp + 0x19c], ebp
mov byte [esp + 0x1c8], 1
jb 0x40e0a9
mov edx, dword [esp + 0x188]
push edx
call fcn.004137e0
add esp, 4
mov edi, dword [esp + 0x1d0]
mov esi, 0xf
mov dword [esp + 0x19c], esi
mov dword [esp + 0x198], ebx
mov byte [esp + 0x188], bl
jmp 0x40e7c5
cmp cl, 0x22
jne 0x40e0e4
cmp byte [esp + 0x1e], bl
sete al
mov byte [esp + 0x1e], al
jmp 0x40df50
cmp byte [esp + 0x1e], bl
jne 0x40e1f3
cmp cl, 0x3c
jne 0x40e10f
cmp eax, 3
je 0x40e41b
cmp eax, ebx
jne 0x40e966
mov dword [edi], 1
jmp 0x40df48
cmp cl, 0x3e
je 0x40e48e
cmp cl, 0x2f
jne 0x40e15f
cmp eax, 1
jne 0x40e1a0
mov eax, 0x420081
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40e130
sub eax, edx
mov edx, dword [edi + 0x34]
push eax
lea ecx, [edi + 0x20]
push 0x420081
push edx
push ebx
call fcn.0040389f
test eax, eax
jne 0x40e15b
mov dword [edi], 2
jmp 0x40df48
mov cl, byte [esp + 0x20]
cmp cl, 0x3f
jne 0x40e1a0
cmp dword [edi], 1
jne 0x40e1a0
mov eax, 0x420081
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40e171
sub eax, edx
push eax
mov eax, dword [edi + 0x34]
lea ecx, [edi + 0x20]
push 0x420081
push eax
push ebx
call fcn.0040389f
test eax, eax
jne 0x40e19c
mov dword [edi], 4
jmp 0x40df48
mov cl, byte [esp + 0x20]
movzx ecx, cl
push ecx
call fcn.00414ecb
add esp, 4
test eax, eax
je 0x40e1e6
mov eax, 0x420081
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40e1b8
sub eax, edx
mov edx, dword [edi + 0x34]
push eax
lea ecx, [edi + 0x20]
push 0x420081
push edx
push ebx
call fcn.0040389f
test eax, eax
je 0x40df48
mov byte [esp + 0x16], 1
jmp 0x40df48
mov cl, byte [esp + 0x20]
cmp cl, 0x20
jbe 0x40ec9c
mov eax, dword [edi]
cmp eax, ebx
jne 0x40e23f
mov dword [edi], 3
cmp byte [esp + 0x16], bl
je 0x40e22b
mov eax, 0x41e474
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40e210
sub eax, edx
push eax
push 0x41e474
lea ecx, [edi + 0x20]
call fcn.00403909
mov byte [esp + 0x16], bl
mov eax, dword [esp + 0x20]
push eax
push 1
lea ecx, [edi + 0x20]
call fcn.0040735c
jmp 0x40df48
cmp eax, 1
jne 0x40e1ff
cmp byte [esp + 0x16], bl
je 0x40e3b5
cmp byte [esp + 0x10], bl
je 0x40e396
cmp byte [esp + 0x17], bl
je 0x40e3aa
cmp dword [esp + 0x38], ebx
jbe 0x40e3aa
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x4c]
push ecx
call fcn.0040f7d0
add esp, 8
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x70]
mov byte [esp + 0x1d4], 0x11
call fcn.00401695
mov eax, dword [esp + 0x60]
mov ebp, 0x10
cmp eax, ebp
mov byte [esp + 0x1c8], 1
jb 0x40e2b5
mov edx, dword [esp + 0x4c]
push edx
call fcn.004137e0
add esp, 4
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x16c]
mov esi, 0xf
push ecx
mov dword [esp + 0x68], esi
mov dword [esp + 0x64], ebx
mov byte [esp + 0x54], bl
call fcn.0040f7d0
add esp, 8
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x1d4], 0x12
call fcn.00401695
cmp dword [esp + 0x180], ebp
mov byte [esp + 0x1c8], 1
jb 0x40e311
mov edx, dword [esp + 0x16c]
push edx
call fcn.004137e0
add esp, 4
lea eax, [esp + 0x64]
push eax
lea ecx, [edi + 0x58]
mov dword [esp + 0x184], esi
mov dword [esp + 0x180], ebx
mov byte [esp + 0x170], bl
call fcn.0040cca0
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x2c]
push ecx
mov ecx, eax
call fcn.00401695
mov eax, 0x420081
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40e350
sub eax, edx
push eax
push 0x420081
lea ecx, [esp + 0x6c]
call fcn.00401884
mov eax, 0x420081
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40e370
sub eax, edx
push eax
push 0x420081
lea ecx, [esp + 0x2c]
call fcn.00401884
mov cl, byte [esp + 0x20]
mov byte [esp + 0x17], bl
mov byte [esp + 0x16], bl
jmp 0x40e3ba
mov byte [esp + 0x10], 1
mov ebp, 0x10
mov byte [esp + 0x17], bl
mov byte [esp + 0x16], bl
jmp 0x40e3ba
mov ebp, 0x10
mov byte [esp + 0x16], bl
jmp 0x40e3ba
mov ebp, 0x10
cmp byte [esp + 0x10], bl
jne 0x40e3dc
lea ecx, [edi + 0x20]
cmp ecx, ebx
je 0x40df50
mov edx, dword [esp + 0x20]
push edx
push 1
call fcn.0040735c
jmp 0x40df50
cmp cl, 0x3d
jne 0x40e3eb
mov byte [esp + 0x17], 1
jmp 0x40df50
cmp byte [esp + 0x17], bl
jne 0x40e406
mov edx, dword [esp + 0x20]
push edx
lea ecx, [esp + 0x68]
push 1
call fcn.0040735c
jmp 0x40df50
mov edx, dword [esp + 0x20]
push edx
lea ecx, [esp + 0x28]
push 1
call fcn.0040735c
jmp 0x40df50
mov esi, dword [esp + 0x18]
add esi, 0x48
push esi
lea eax, [esp + 0x134]
push 0x3c
push eax
call fcn.0040dbe0
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
mov ecx, esi
mov byte [esp + 0x1d4], 3
call fcn.00401695
mov eax, dword [esp + 0x148]
mov ebp, 0x10
cmp eax, ebp
mov byte [esp + 0x1c8], 1
jb 0x40e470
mov ecx, dword [esp + 0x134]
push ecx
call fcn.004137e0
add esp, 4
mov dword [esp + 0x148], 0xf
mov dword [esp + 0x144], ebx
mov byte [esp + 0x134], bl
jmp 0x40e7c0
mov eax, dword [edi]
cmp eax, 1
jne 0x40e68b
mov eax, 0x41e470
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40e4a1
sub eax, edx
mov edx, dword [edi + 0x34]
push eax
lea esi, [edi + 0x20]
push 0x41e470
push edx
push ebx
mov ecx, esi
call fcn.0040389f
test eax, eax
mov ebp, 0x10
jne 0x40e4d2
mov byte [esp + 0x1f], 1
jmp 0x40e7c0
mov eax, dword [edi + 0x34]
cmp eax, ebx
jle 0x40e64d
cmp dword [esi + 0x18], ebp
jb 0x40e4e7
mov ecx, dword [esi + 4]
jmp 0x40e4ea
lea ecx, [esi + 4]
cmp byte [ecx + eax - 1], 0x2f
jne 0x40e64d
dec eax
push eax
push ebx
lea eax, [esp + 0x11c]
push eax
mov ecx, esi
call fcn.0040164f
push 0xffffffffffffffff
push ebx
push eax
mov ecx, esi
mov byte [esp + 0x1d4], 5
call fcn.00401695
cmp dword [esp + 0x12c], ebp
mov byte [esp + 0x1c8], 1
jb 0x40e53b
mov ecx, dword [esp + 0x118]
push ecx
call fcn.004137e0
add esp, 4
push esi
lea edx, [esp + 0xf8]
push 0x41e46c
push edx
mov dword [esp + 0x138], 0xf
mov dword [esp + 0x134], ebx
mov byte [esp + 0x124], bl
call fcn.00403781
push 0x41e468
push eax
lea eax, [esp + 0x160]
push eax
mov byte [esp + 0x1e0], 6
call fcn.00403735
mov esi, dword [esp + 0x30]
add esi, 0x48
push esi
push eax
lea ecx, [esp + 0x1c0]
push ecx
mov byte [esp + 0x1ec], 7
call fcn.0040746a
add esp, 0x24
push 0xffffffffffffffff
push ebx
push eax
mov ecx, esi
mov byte [esp + 0x1d4], 8
call fcn.00401695
cmp dword [esp + 0x1b8], ebp
jb 0x40e5cf
mov edx, dword [esp + 0x1a4]
push edx
call fcn.004137e0
add esp, 4
cmp dword [esp + 0x164], ebp
mov esi, 0xf
mov dword [esp + 0x1b8], esi
mov dword [esp + 0x1b4], ebx
mov byte [esp + 0x1a4], bl
jb 0x40e602
mov eax, dword [esp + 0x150]
push eax
call fcn.004137e0
add esp, 4
cmp dword [esp + 0x10c], ebp
mov dword [esp + 0x164], esi
mov dword [esp + 0x160], ebx
mov byte [esp + 0x150], bl
mov byte [esp + 0x1c8], 1
jb 0x40e638
mov ecx, dword [esp + 0xf8]
push ecx
call fcn.004137e0
add esp, 4
mov dword [esp + 0x10c], esi
mov dword [esp + 0x108], ebx
mov byte [esp + 0xf8], bl
mov esi, dword [esp + 0x18]
cmp dword [esi + 0x78], ebx
je 0x40e677
mov eax, 0x41e464
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40e660
sub eax, edx
push eax
push 0x41e464
lea ecx, [esi + 0x64]
call fcn.00403909
push 0xffffffffffffffff
push ebx
lea eax, [edi + 0x20]
push eax
lea ecx, [esi + 0x64]
call fcn.00402f43
jmp 0x40e7c0
cmp eax, 2
jne 0x40ec19
mov ebp, dword [esp + 0x18]
push 1
push 0xffffffffffffffff
lea edx, [esp + 0x18]
lea ecx, [ebp + 0x64]
push edx
mov byte [esp + 0x1c], 0x2f
mov dword [esp + 0x50], ecx
call fcn.004073bc
mov esi, eax
cmp esi, 0xffffffff
jne 0x40e6c2
cmp dword [ebp + 0x78], ebx
je 0x40e9dc
push 0xffffffffffffffff
lea eax, [esi + 1]
push eax
lea ecx, [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x50]
call fcn.0040164f
mov edx, dword [edi + 0x38]
mov eax, dword [edi + 0x34]
lea ecx, [edi + 0x20]
mov ebp, 0x10
cmp edx, ebp
mov byte [esp + 0x1c8], 0xa
mov dword [esp + 0x40], ecx
jb 0x40e6fe
mov edx, ecx
mov ecx, dword [edx + 4]
jmp 0x40e705
mov ecx, dword [esp + 0x40]
add ecx, 4
push eax
mov eax, dword [esp + 0x9c]
push ecx
push eax
push ebx
lea ecx, [esp + 0x94]
call fcn.0040389f
test eax, eax
jne 0x40ea70
cmp esi, 0xffffffff
push ecx
mov ecx, esp
jne 0x40e75c
mov esi, dword [esp + 0x48]
mov dword [esp + 0x44], esp
push ecx
mov ecx, esi
call fcn.0040dab0
push ecx
mov edx, esp
mov dword [esp + 0x4c], esp
push edx
mov ecx, esi
call fcn.00407310
lea eax, [esp + 0x88]
push eax
mov ecx, esi
call fcn.004072c1
jmp 0x40e7ac
mov dword [esp + 0x84], esp
push ecx
mov ecx, dword [esp + 0x20]
add ecx, 0x64
call fcn.0040dab0
push ecx
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x118]
mov dword [esp + 0x88], esp
mov edi, esp
push edx
add ecx, 0x64
call fcn.00407310
mov eax, dword [eax]
lea ecx, [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x24]
add eax, esi
add ecx, 0x64
mov dword [edi], eax
call fcn.004072c1
mov edi, dword [esp + 0x1d0]
lea ecx, [esp + 0x84]
mov byte [esp + 0x1c8], 1
call fcn.00401647
mov esi, 0xf
cmp dword [esp + 0x78], ebx
jbe 0x40e8ab
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0xc0]
push eax
call fcn.0040f7d0
add esp, 8
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x70]
mov byte [esp + 0x1d4], 0x14
call fcn.00401695
cmp dword [esp + 0xd4], ebp
mov byte [esp + 0x1c8], 1
jb 0x40e81a
mov ecx, dword [esp + 0xc0]
push ecx
call fcn.004137e0
add esp, 4
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0xdc]
push eax
mov dword [esp + 0xdc], esi
mov dword [esp + 0xd8], ebx
mov byte [esp + 0xc8], bl
call fcn.0040f7d0
add esp, 8
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x1d4], 0x15
call fcn.00401695
cmp dword [esp + 0xf0], ebp
mov byte [esp + 0x1c8], 1
jb 0x40e87a
mov ecx, dword [esp + 0xdc]
push ecx
call fcn.004137e0
add esp, 4
lea edx, [esp + 0x64]
push edx
lea ecx, [edi + 0x58]
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], bl
call fcn.0040cca0
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x2c]
push ecx
mov ecx, eax
call fcn.00401695
add edi, 0x20
lea edx, [esp + 0xa0]
push edi
push edx
call fcn.0040f7d0
add esp, 8
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
mov byte [esp + 0x1d4], 0x16
call fcn.00401695
cmp dword [esp + 0xb8], ebp
mov byte [esp + 0x1c8], 1
jb 0x40e8f3
mov eax, dword [esp + 0xa4]
push eax
call fcn.004137e0
add esp, 4
cmp byte [esp + 0x1f], bl
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xb8], esi
mov dword [esp + 0xb4], ebx
mov byte [esp + 0xa4], bl
je 0x40ebe2
cmp eax, ebp
jb 0x40e927
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004137e0
add esp, 4
cmp dword [esp + 0x7c], ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov dword [esp + 0x1c8], 0xffffffff
jb 0x40e951
mov edx, dword [esp + 0x68]
push edx
call fcn.004137e0
add esp, 4
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
jmp 0x40dea8
mov edi, 0xf
mov eax, str.Unexpected__
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], ebx
mov byte [esp + 0x88], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40e988
sub eax, edx
push eax
push str.Unexpected__
lea ecx, [esp + 0x8c]
call fcn.00401884
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x84]
push eax
mov byte [esp + 0x1cc], 4
call fcn.0040dcf0
mov eax, dword [esp + 0x9c]
mov esi, 0x10
cmp eax, esi
jb 0x40ecfd
mov ecx, dword [esp + 0x88]
jmp 0x40ecf4
mov edi, 0xf
mov eax, str.Unexpected_End
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40e9f5
sub eax, edx
push eax
push str.Unexpected_End
lea ecx, [esp + 0x50]
call fcn.00401884
lea ecx, [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x1cc], 9
call fcn.0040dcf0
mov eax, dword [esp + 0x60]
mov esi, 0x10
cmp eax, esi
jb 0x40ea3d
mov edx, dword [esp + 0x4c]
push edx
call fcn.004137e0
add esp, 4
cmp dword [esp + 0x3c], esi
jb 0x40ea50
mov eax, dword [esp + 0x28]
push eax
call fcn.004137e0
add esp, 4
cmp dword [esp + 0x7c], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
jb 0x40edcc
mov ecx, dword [esp + 0x68]
push ecx
jmp 0x40edc4
mov edx, dword [esp + 0x40]
push edx
lea eax, [esp + 0xf8]
push str.End_
push eax
call fcn.00403781
push str._Doesnt_Match_Start_
push eax
lea ecx, [esp + 0xd0]
push ecx
mov byte [esp + 0x1e0], 0xb
call fcn.00403735
lea edx, [esp + 0x9c]
push edx
push eax
lea eax, [esp + 0xf8]
push eax
mov byte [esp + 0x1ec], 0xc
call fcn.0040746a
push 0x42005c
push eax
lea ecx, [esp + 0xcc]
push ecx
mov byte [esp + 0x1f8], 0xd
call fcn.00403735
add esp, 0x30
mov ecx, dword [esp + 0x18]
push eax
mov byte [esp + 0x1cc], 0xe
call fcn.0040dcf0
cmp dword [esp + 0xb8], ebp
jb 0x40eb09
mov edx, dword [esp + 0xa4]
push edx
call fcn.004137e0
add esp, 4
cmp dword [esp + 0xf0], ebp
mov esi, 0xf
mov dword [esp + 0xb8], esi
mov dword [esp + 0xb4], ebx
mov byte [esp + 0xa4], bl
jb 0x40eb3c
mov eax, dword [esp + 0xdc]
push eax
call fcn.004137e0
add esp, 4
cmp dword [esp + 0xd4], ebp
mov dword [esp + 0xf0], esi
mov dword [esp + 0xec], ebx
mov byte [esp + 0xdc], bl
jb 0x40eb6a
mov ecx, dword [esp + 0xc0]
push ecx
call fcn.004137e0
add esp, 4
cmp dword [esp + 0x10c], ebp
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd0], ebx
mov byte [esp + 0xc0], bl
jb 0x40eb98
mov edx, dword [esp + 0xf8]
push edx
call fcn.004137e0
add esp, 4
cmp dword [esp + 0x9c], ebp
jb 0x40ebb1
mov eax, dword [esp + 0x88]
push eax
call fcn.004137e0
add esp, 4
cmp dword [esp + 0x3c], ebp
mov dword [esp + 0x9c], esi
mov dword [esp + 0x98], ebx
mov byte [esp + 0x88], bl
jb 0x40ebd9
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004137e0
add esp, 4
mov dword [esp + 0x3c], esi
jmp 0x40edb1
cmp eax, ebp
jb 0x40ebf3
mov eax, dword [esp + 0x28]
push eax
call fcn.004137e0
add esp, 4
cmp dword [esp + 0x7c], ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
jb 0x40ec12
mov ecx, dword [esp + 0x68]
push ecx
call fcn.004137e0
add esp, 4
mov al, 1
jmp 0x40edce
mov edi, 0xf
mov eax, 0x41e414
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40ec32
sub eax, edx
push eax
push 0x41e414
lea ecx, [esp + 0x50]
call fcn.00401884
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x48]
push edx
mov byte [esp + 0x1cc], 0xf
call fcn.0040dcf0
mov eax, dword [esp + 0x60]
mov esi, 0x10
cmp eax, esi
jb 0x40ec7a
mov eax, dword [esp + 0x4c]
push eax
call fcn.004137e0
add esp, 4
cmp dword [esp + 0x3c], esi
jb 0x40ec8d
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004137e0
add esp, 4
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x3c], edi
cmp eax, esi
jmp 0x40edb5
mov edi, 0xf
mov eax, str.Illegal_Character
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40ecb5
sub eax, edx
push eax
push str.Illegal_Character
lea ecx, [esp + 0x50]
call fcn.00401884
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x1cc], 0x10
call fcn.0040dcf0
mov eax, dword [esp + 0x60]
mov esi, 0x10
cmp eax, esi
jb 0x40ecfd
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.004137e0
add esp, 4
cmp dword [esp + 0x3c], esi
jb 0x40ed10
mov edx, dword [esp + 0x28]
push edx
call fcn.004137e0
add esp, 4
cmp dword [esp + 0x7c], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
jb 0x40edcc
mov eax, dword [esp + 0x68]
push eax
jmp 0x40edc4
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1d0]
cmp dword [ecx], ebx
je 0x40ed96
mov eax, str.Unexpected_End_of_File
mov dword [esp + 0x60], 0xf
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40ed57
sub eax, edx
push eax
push str.Unexpected_End_of_File
lea ecx, [esp + 0x50]
call fcn.00401884
lea edx, [esp + 0x48]
push edx
mov ecx, esi
mov byte [esp + 0x1cc], 0x13
call fcn.0040dcf0
cmp dword [esp + 0x60], ebp
jb 0x40ed96
mov eax, dword [esp + 0x4c]
push eax
call fcn.004137e0
add esp, 4
cmp dword [esp + 0x3c], ebp
jb 0x40eda9
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004137e0
add esp, 4
mov dword [esp + 0x3c], 0xf
cmp dword [esp + 0x7c], ebp
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
jb 0x40edcc
mov edx, dword [esp + 0x68]
push edx
call fcn.004137e0
add esp, 4
xor al, al
mov ecx, dword [esp + 0x1c0]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x1bc]
xor ecx, dword [esp + 0x1cc]
call fcn.00414ebd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1bc
ret 4