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

Disassembly:
push 0xffffffffffffffff
push 0x413bd1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1b0
mov eax, dword [0x419168]
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.0040177b
mov eax, 0x415275
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x4064d5
sub eax, ecx
push eax
push 0x415275
lea ecx, [esi + 0x20]
call fcn.0040180a
mov eax, dword [esi + 0x5c]
mov ecx, dword [eax + 4]
add esi, 0x58
push ecx
mov ecx, esi
call fcn.00402699
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 + 0x12], bl
mov byte [esp + 0x1e], bl
mov byte [esp + 0x14], bl
mov byte [esp + 0x13], 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 0x4065c1
mov eax, dword [esi + 0x60]
cmp eax, ebp
lea ecx, [esi + 0x48]
jb 0x406568
mov eax, dword [ecx + 4]
jmp 0x40656b
lea eax, [ecx + 4]
mov dl, byte [eax]
cmp dword [ecx + 0x18], ebp
mov byte [esp + 0x20], dl
jb 0x40657b
mov eax, dword [ecx + 4]
jmp 0x40657e
lea eax, [ecx + 4]
lea edx, [eax + 1]
cmp dword [ecx + 0x18], ebp
jb 0x40658b
mov esi, dword [ecx + 4]
jmp 0x40658e
lea esi, [ecx + 4]
cmp dword [ecx + 0x18], ebp
jb 0x406598
mov edi, dword [ecx + 4]
jmp 0x40659b
lea edi, [ecx + 4]
cmp esi, ebx
jne 0x4065a3
xor eax, eax
jmp 0x4065a7
mov eax, esi
sub eax, edi
cmp edx, ebx
jne 0x4065b6
xor edx, edx
push edx
push eax
call fcn.00401661
jmp 0x4065e7
sub edx, esi
push edx
push eax
call fcn.00401661
jmp 0x4065e7
mov eax, dword [esi + 0x40]
cmp eax, ebx
je 0x407334
push eax
push 1
lea eax, [esp + 0x28]
push 1
push eax
call fcn.0040bd6d
add esp, 0x10
cmp eax, 1
jne 0x407330
mov cl, byte [esp + 0x20]
cmp cl, 0xa
jne 0x4065f7
mov eax, dword [esp + 0x18]
inc dword [eax + 0x3c]
mov edi, dword [esp + 0x1d0]
mov eax, dword [edi]
cmp eax, 4
jne 0x4066cf
cmp dword [edi + 0x50], ebx
lea esi, [edi + 0x20]
jne 0x406621
movsx ecx, cl
push ecx
call fcn.0040bc4a
add esp, 4
test eax, eax
je 0x406624
lea esi, [edi + 0x3c]
mov edx, dword [esp + 0x20]
push edx
push 1
mov ecx, esi
call fcn.004039db
cmp byte [esp + 0x20], 0x3e
mov eax, dword [esi + 0x14]
jne 0x406550
cmp eax, 2
jl 0x406550
cmp dword [esi + 0x18], ebp
jb 0x406653
mov ecx, dword [esi + 4]
jmp 0x406656
lea ecx, [esi + 4]
cmp byte [ecx + eax - 2], 0x3f
jne 0x406550
add eax, 0xfffffffe
push eax
push ebx
lea ecx, [esp + 0x18c]
push ecx
mov ecx, esi
call fcn.00403e61
push 0xffffffffffffffff
push ebx
push eax
mov ecx, esi
mov byte [esp + 0x1d4], 2
call fcn.0040177b
cmp dword [esp + 0x19c], ebp
mov byte [esp + 0x1c8], 1
jb 0x4066a9
mov edx, dword [esp + 0x188]
push edx
call fcn.0040ac2d
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 0x406dc5
cmp cl, 0x22
jne 0x4066ea
cmp byte [esp + 0x13], bl
je 0x4066ea
cmp byte [esp + 0x1e], bl
sete al
mov byte [esp + 0x1e], al
jmp 0x406548
cmp byte [esp + 0x1e], bl
jne 0x4067f3
cmp cl, 0x3c
jne 0x406715
cmp eax, 3
je 0x406a1b
cmp eax, ebx
jne 0x406f66
mov dword [edi], 1
jmp 0x406548
cmp cl, 0x3e
je 0x406a8e
cmp cl, 0x2f
jne 0x40675f
cmp eax, 1
jne 0x4067a0
mov eax, 0x415275
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x406730
sub eax, edx
mov edx, dword [edi + 0x34]
push eax
lea ecx, [edi + 0x20]
push 0x415275
push edx
push ebx
call fcn.00401143
test eax, eax
jne 0x40675b
mov dword [edi], 2
jmp 0x406548
mov cl, byte [esp + 0x20]
cmp cl, 0x3f
jne 0x4067a0
cmp dword [edi], 1
jne 0x4067a0
mov eax, 0x415275
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x406771
sub eax, edx
push eax
mov eax, dword [edi + 0x34]
lea ecx, [edi + 0x20]
push 0x415275
push eax
push ebx
call fcn.00401143
test eax, eax
jne 0x40679c
mov dword [edi], 4
jmp 0x406548
mov cl, byte [esp + 0x20]
movzx ecx, cl
push ecx
call fcn.0040bc4a
add esp, 4
test eax, eax
je 0x4067e6
mov eax, 0x415275
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4067b8
sub eax, edx
mov edx, dword [edi + 0x34]
push eax
lea ecx, [edi + 0x20]
push 0x415275
push edx
push ebx
call fcn.00401143
test eax, eax
je 0x406548
mov byte [esp + 0x12], 1
jmp 0x406548
mov cl, byte [esp + 0x20]
cmp cl, 0x20
jbe 0x40729c
mov eax, dword [edi]
cmp eax, ebx
jne 0x40683f
mov dword [edi], 3
cmp byte [esp + 0x12], bl
je 0x40682b
mov eax, 0x4156d8
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x406810
sub eax, edx
push eax
push 0x4156d8
lea ecx, [edi + 0x20]
call fcn.004016eb
mov byte [esp + 0x12], bl
mov eax, dword [esp + 0x20]
push eax
push 1
lea ecx, [edi + 0x20]
call fcn.004039db
jmp 0x406548
cmp eax, 1
jne 0x4067ff
cmp byte [esp + 0x12], bl
je 0x4069b5
cmp byte [esp + 0x14], bl
je 0x406996
cmp byte [esp + 0x13], bl
je 0x4069aa
cmp dword [esp + 0x38], ebx
jbe 0x4069aa
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x4c]
push ecx
call fcn.004075e0
add esp, 8
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x70]
mov byte [esp + 0x1d4], 0x11
call fcn.0040177b
mov eax, dword [esp + 0x60]
mov ebp, 0x10
cmp eax, ebp
mov byte [esp + 0x1c8], 1
jb 0x4068b5
mov edx, dword [esp + 0x4c]
push edx
call fcn.0040ac2d
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.004075e0
add esp, 8
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x1d4], 0x12
call fcn.0040177b
cmp dword [esp + 0x180], ebp
mov byte [esp + 0x1c8], 1
jb 0x406911
mov edx, dword [esp + 0x16c]
push edx
call fcn.0040ac2d
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.00406390
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x2c]
push ecx
mov ecx, eax
call fcn.0040177b
mov eax, 0x415275
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x406950
sub eax, edx
push eax
push 0x415275
lea ecx, [esp + 0x6c]
call fcn.0040180a
mov eax, 0x415275
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x406970
sub eax, edx
push eax
push 0x415275
lea ecx, [esp + 0x2c]
call fcn.0040180a
mov cl, byte [esp + 0x20]
mov byte [esp + 0x13], bl
mov byte [esp + 0x12], bl
jmp 0x4069ba
mov byte [esp + 0x14], 1
mov ebp, 0x10
mov byte [esp + 0x13], bl
mov byte [esp + 0x12], bl
jmp 0x4069ba
mov ebp, 0x10
mov byte [esp + 0x12], bl
jmp 0x4069ba
mov ebp, 0x10
cmp byte [esp + 0x14], bl
jne 0x4069dc
lea ecx, [edi + 0x20]
cmp ecx, ebx
je 0x406550
mov edx, dword [esp + 0x20]
push edx
push 1
call fcn.004039db
jmp 0x406550
cmp cl, 0x3d
jne 0x4069eb
mov byte [esp + 0x13], 1
jmp 0x406550
cmp byte [esp + 0x13], bl
jne 0x406a06
mov edx, dword [esp + 0x20]
push edx
lea ecx, [esp + 0x68]
push 1
call fcn.004039db
jmp 0x406550
mov edx, dword [esp + 0x20]
push edx
lea ecx, [esp + 0x28]
push 1
call fcn.004039db
jmp 0x406550
mov esi, dword [esp + 0x18]
add esi, 0x48
push esi
lea eax, [esp + 0x134]
push 0x3c
push eax
call fcn.00405ca0
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
mov ecx, esi
mov byte [esp + 0x1d4], 3
call fcn.0040177b
mov eax, dword [esp + 0x148]
mov ebp, 0x10
cmp eax, ebp
mov byte [esp + 0x1c8], 1
jb 0x406a70
mov ecx, dword [esp + 0x134]
push ecx
call fcn.0040ac2d
add esp, 4
mov dword [esp + 0x148], 0xf
mov dword [esp + 0x144], ebx
mov byte [esp + 0x134], bl
jmp 0x406dc0
mov eax, dword [edi]
cmp eax, 1
jne 0x406c8b
mov eax, 0x4156d4
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x406aa1
sub eax, edx
mov edx, dword [edi + 0x34]
push eax
lea esi, [edi + 0x20]
push 0x4156d4
push edx
push ebx
mov ecx, esi
call fcn.00401143
test eax, eax
mov ebp, 0x10
jne 0x406ad2
mov byte [esp + 0x1f], 1
jmp 0x406dc0
mov eax, dword [edi + 0x34]
cmp eax, ebx
jle 0x406c4d
cmp dword [esi + 0x18], ebp
jb 0x406ae7
mov ecx, dword [esi + 4]
jmp 0x406aea
lea ecx, [esi + 4]
cmp byte [ecx + eax - 1], 0x2f
jne 0x406c4d
dec eax
push eax
push ebx
lea eax, [esp + 0x11c]
push eax
mov ecx, esi
call fcn.00403e61
push 0xffffffffffffffff
push ebx
push eax
mov ecx, esi
mov byte [esp + 0x1d4], 5
call fcn.0040177b
cmp dword [esp + 0x12c], ebp
mov byte [esp + 0x1c8], 1
jb 0x406b3b
mov ecx, dword [esp + 0x118]
push ecx
call fcn.0040ac2d
add esp, 4
push esi
lea edx, [esp + 0xf8]
push 0x4156d0
push edx
mov dword [esp + 0x138], 0xf
mov dword [esp + 0x134], ebx
mov byte [esp + 0x124], bl
call fcn.00401fb6
push 0x4156cc
push eax
lea eax, [esp + 0x160]
push eax
mov byte [esp + 0x1e0], 6
call fcn.00401f6a
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.00405d50
add esp, 0x24
push 0xffffffffffffffff
push ebx
push eax
mov ecx, esi
mov byte [esp + 0x1d4], 8
call fcn.0040177b
cmp dword [esp + 0x1b8], ebp
jb 0x406bcf
mov edx, dword [esp + 0x1a4]
push edx
call fcn.0040ac2d
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 0x406c02
mov eax, dword [esp + 0x150]
push eax
call fcn.0040ac2d
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 0x406c38
mov ecx, dword [esp + 0xf8]
push ecx
call fcn.0040ac2d
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 0x406c77
mov eax, 0x4156c8
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x406c60
sub eax, edx
push eax
push 0x4156c8
lea ecx, [esi + 0x64]
call fcn.004016eb
push 0xffffffffffffffff
push ebx
lea eax, [edi + 0x20]
push eax
lea ecx, [esi + 0x64]
call fcn.004015cc
jmp 0x406dc0
cmp eax, 2
jne 0x407219
mov ebp, dword [esp + 0x18]
push 1
push 0xffffffffffffffff
lea edx, [esp + 0x1c]
lea ecx, [ebp + 0x64]
push edx
mov byte [esp + 0x20], 0x2f
mov dword [esp + 0x50], ecx
call fcn.0040363f
mov esi, eax
cmp esi, 0xffffffff
jne 0x406cc2
cmp dword [ebp + 0x78], ebx
je 0x406fdc
push 0xffffffffffffffff
lea eax, [esi + 1]
push eax
lea ecx, [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x50]
call fcn.00403e61
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 0x406cfe
mov edx, ecx
mov ecx, dword [edx + 4]
jmp 0x406d05
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.00401143
test eax, eax
jne 0x407070
cmp esi, 0xffffffff
push ecx
mov ecx, esp
jne 0x406d5c
mov esi, dword [esp + 0x48]
mov dword [esp + 0x44], esp
push ecx
mov ecx, esi
call fcn.00405a20
push ecx
mov edx, esp
mov dword [esp + 0x4c], esp
push edx
mov ecx, esi
call fcn.00403576
lea eax, [esp + 0x88]
push eax
mov ecx, esi
call fcn.00403aa5
jmp 0x406dac
mov dword [esp + 0x84], esp
push ecx
mov ecx, dword [esp + 0x20]
add ecx, 0x64
call fcn.00405a20
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.00403576
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.00403aa5
mov edi, dword [esp + 0x1d0]
lea ecx, [esp + 0x84]
mov byte [esp + 0x1c8], 1
call fcn.0040146d
mov esi, 0xf
cmp dword [esp + 0x78], ebx
jbe 0x406eab
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0xc0]
push eax
call fcn.004075e0
add esp, 8
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x70]
mov byte [esp + 0x1d4], 0x14
call fcn.0040177b
cmp dword [esp + 0xd4], ebp
mov byte [esp + 0x1c8], 1
jb 0x406e1a
mov ecx, dword [esp + 0xc0]
push ecx
call fcn.0040ac2d
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.004075e0
add esp, 8
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x1d4], 0x15
call fcn.0040177b
cmp dword [esp + 0xf0], ebp
mov byte [esp + 0x1c8], 1
jb 0x406e7a
mov ecx, dword [esp + 0xdc]
push ecx
call fcn.0040ac2d
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.00406390
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x2c]
push ecx
mov ecx, eax
call fcn.0040177b
add edi, 0x20
lea edx, [esp + 0xa0]
push edi
push edx
call fcn.004075e0
add esp, 8
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
mov byte [esp + 0x1d4], 0x16
call fcn.0040177b
cmp dword [esp + 0xb8], ebp
mov byte [esp + 0x1c8], 1
jb 0x406ef3
mov eax, dword [esp + 0xa4]
push eax
call fcn.0040ac2d
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 0x4071e2
cmp eax, ebp
jb 0x406f27
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0040ac2d
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 0x406f51
mov edx, dword [esp + 0x68]
push edx
call fcn.0040ac2d
add esp, 4
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
jmp 0x4064a8
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 0x406f88
sub eax, edx
push eax
push str.Unexpected__
lea ecx, [esp + 0x8c]
call fcn.0040180a
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x84]
push eax
mov byte [esp + 0x1cc], 4
call fcn.00405e50
mov eax, dword [esp + 0x9c]
mov esi, 0x10
cmp eax, esi
jb 0x4072fd
mov ecx, dword [esp + 0x88]
jmp 0x4072f4
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 0x406ff5
sub eax, edx
push eax
push str.Unexpected_End
lea ecx, [esp + 0x50]
call fcn.0040180a
lea ecx, [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x1cc], 9
call fcn.00405e50
mov eax, dword [esp + 0x60]
mov esi, 0x10
cmp eax, esi
jb 0x40703d
mov edx, dword [esp + 0x4c]
push edx
call fcn.0040ac2d
add esp, 4
cmp dword [esp + 0x3c], esi
jb 0x407050
mov eax, dword [esp + 0x28]
push eax
call fcn.0040ac2d
add esp, 4
cmp dword [esp + 0x7c], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
jb 0x4073cc
mov ecx, dword [esp + 0x68]
push ecx
jmp 0x4073c4
mov edx, dword [esp + 0x40]
push edx
lea eax, [esp + 0xf8]
push str.End_
push eax
call fcn.00401fb6
push str._Doesnt_Match_Start_
push eax
lea ecx, [esp + 0xd0]
push ecx
mov byte [esp + 0x1e0], 0xb
call fcn.00401f6a
lea edx, [esp + 0x9c]
push edx
push eax
lea eax, [esp + 0xf8]
push eax
mov byte [esp + 0x1ec], 0xc
call fcn.00405d50
push 0x415228
push eax
lea ecx, [esp + 0xcc]
push ecx
mov byte [esp + 0x1f8], 0xd
call fcn.00401f6a
add esp, 0x30
mov ecx, dword [esp + 0x18]
push eax
mov byte [esp + 0x1cc], 0xe
call fcn.00405e50
cmp dword [esp + 0xb8], ebp
jb 0x407109
mov edx, dword [esp + 0xa4]
push edx
call fcn.0040ac2d
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 0x40713c
mov eax, dword [esp + 0xdc]
push eax
call fcn.0040ac2d
add esp, 4
cmp dword [esp + 0xd4], ebp
mov dword [esp + 0xf0], esi
mov dword [esp + 0xec], ebx
mov byte [esp + 0xdc], bl
jb 0x40716a
mov ecx, dword [esp + 0xc0]
push ecx
call fcn.0040ac2d
add esp, 4
cmp dword [esp + 0x10c], ebp
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd0], ebx
mov byte [esp + 0xc0], bl
jb 0x407198
mov edx, dword [esp + 0xf8]
push edx
call fcn.0040ac2d
add esp, 4
cmp dword [esp + 0x9c], ebp
jb 0x4071b1
mov eax, dword [esp + 0x88]
push eax
call fcn.0040ac2d
add esp, 4
cmp dword [esp + 0x3c], ebp
mov dword [esp + 0x9c], esi
mov dword [esp + 0x98], ebx
mov byte [esp + 0x88], bl
jb 0x4071d9
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0040ac2d
add esp, 4
mov dword [esp + 0x3c], esi
jmp 0x4073b1
cmp eax, ebp
jb 0x4071f3
mov eax, dword [esp + 0x28]
push eax
call fcn.0040ac2d
add esp, 4
cmp dword [esp + 0x7c], ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
jb 0x407212
mov ecx, dword [esp + 0x68]
push ecx
call fcn.0040ac2d
add esp, 4
mov al, 1
jmp 0x4073ce
mov edi, 0xf
mov eax, 0x415678
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 0x407232
sub eax, edx
push eax
push 0x415678
lea ecx, [esp + 0x50]
call fcn.0040180a
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x48]
push edx
mov byte [esp + 0x1cc], 0xf
call fcn.00405e50
mov eax, dword [esp + 0x60]
mov esi, 0x10
cmp eax, esi
jb 0x40727a
mov eax, dword [esp + 0x4c]
push eax
call fcn.0040ac2d
add esp, 4
cmp dword [esp + 0x3c], esi
jb 0x40728d
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0040ac2d
add esp, 4
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x3c], edi
cmp eax, esi
jmp 0x4073b5
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 0x4072b5
sub eax, edx
push eax
push str.Illegal_Character
lea ecx, [esp + 0x50]
call fcn.0040180a
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x1cc], 0x10
call fcn.00405e50
mov eax, dword [esp + 0x60]
mov esi, 0x10
cmp eax, esi
jb 0x4072fd
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.0040ac2d
add esp, 4
cmp dword [esp + 0x3c], esi
jb 0x407310
mov edx, dword [esp + 0x28]
push edx
call fcn.0040ac2d
add esp, 4
cmp dword [esp + 0x7c], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
jb 0x4073cc
mov eax, dword [esp + 0x68]
push eax
jmp 0x4073c4
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1d0]
cmp dword [ecx], ebx
je 0x407396
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 0x407357
sub eax, edx
push eax
push str.Unexpected_End_of_File
lea ecx, [esp + 0x50]
call fcn.0040180a
lea edx, [esp + 0x48]
push edx
mov ecx, esi
mov byte [esp + 0x1cc], 0x13
call fcn.00405e50
cmp dword [esp + 0x60], ebp
jb 0x407396
mov eax, dword [esp + 0x4c]
push eax
call fcn.0040ac2d
add esp, 4
cmp dword [esp + 0x3c], ebp
jb 0x4073a9
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0040ac2d
add esp, 4
mov dword [esp + 0x3c], 0xf
cmp dword [esp + 0x7c], ebp
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
jb 0x4073cc
mov edx, dword [esp + 0x68]
push edx
call fcn.0040ac2d
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.0040bdea
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1bc
ret 4