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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x78bc98
mov eax, dword fs:[0]
push eax
sub esp, 0x170
mov eax, dword [0x867e6c]
xor eax, esp
mov dword [esp + 0x168], eax
push ebx
push esi
push edi
mov eax, dword [0x867e6c]
xor eax, esp
push eax
lea eax, [esp + 0x180]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov dword [esp + 0x24], ecx
add ecx, 0x68
mov dword [esp + 0x44], ecx
lea eax, [ebx + 4]
lea ecx, [ebx + 0x20]
lea edx, [ebx + 0x3c]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x70], edx
lea eax, [ebx + 0x74]
lea ecx, [ebx + 0x94]
lea edx, [ebx + 0x58]
mov dword [esp + 0x98], ebx
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x48], edx
jmp 0x590900
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x9c]
push 0xffffffffffffffff
xor esi, esi
push esi
push eax
mov dword [ebx], esi
call fcn.00401880
mov ecx, dword [esp + 0x18]
push esi
push 0x81d238
call fcn.00403a80
mov ecx, dword [esp + 0x70]
push esi
push 0x81d238
call fcn.00403a80
mov edi, dword [esp + 0x78]
mov ecx, dword [edi + 0x18]
mov edx, dword [ecx + 4]
push edx
mov ecx, edi
call fcn.004158b0
mov eax, dword [edi + 0x18]
mov dword [eax + 4], eax
mov eax, dword [edi + 0x18]
mov dword [edi + 0x1c], esi
mov dword [eax], eax
mov eax, dword [edi + 0x18]
mov edi, dword [esp + 0x74]
mov dword [eax + 8], eax
mov eax, dword [edi + 0x18]
mov ecx, dword [eax + 4]
push ecx
mov ecx, edi
call fcn.004158b0
mov eax, dword [edi + 0x18]
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], eax
mov eax, dword [edi + 0x18]
mov dword [edi + 0x1c], esi
mov dword [eax], eax
mov eax, dword [edi + 0x18]
push 0xffffffffffffffff
push esi
mov dword [eax + 8], eax
call fcn.004013d0
mov eax, dword [ebx + 0xc8]
mov ecx, dword [eax]
mov dword [eax], eax
mov eax, dword [ebx + 0xc8]
mov dword [eax + 4], eax
mov dword [ebx + 0xcc], esi
cmp ecx, dword [ebx + 0xc8]
je 0x5909c5
nop
mov edi, dword [ecx]
push ecx
call fcn.006441c7
add esp, 4
mov ecx, edi
cmp edi, dword [ebx + 0xc8]
jne 0x5909b0
mov ecx, dword [ebx + 0xe4]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [ebx + 0xe4]
mov dword [ecx + 4], ecx
mov dword [ebx + 0xe8], esi
cmp eax, dword [ebx + 0xe4]
je 0x5909fb
mov edi, dword [eax]
push eax
call fcn.006441c7
add esp, 4
mov eax, edi
cmp edi, dword [ebx + 0xe4]
jne 0x5909e6
mov eax, 7
xor edx, edx
mov byte [esp + 0x16], 0
mov byte [esp + 0x1f], 0
mov byte [esp + 0x15], 0
mov byte [esp + 0x1e], 0
mov byte [esp + 0x17], 0
mov dword [esp + 0x174], eax
mov dword [esp + 0x170], esi
mov word [esp + 0x160], dx
mov dword [esp + 0x188], esi
xor ecx, ecx
mov dword [esp + 0xe8], eax
mov dword [esp + 0xe4], esi
mov word [esp + 0xd4], cx
mov dword [esp + 0x13c], eax
mov dword [esp + 0x138], esi
mov word [esp + 0x128], dx
mov dword [esp + 0x120], eax
xor eax, eax
mov dword [esp + 0x11c], esi
mov word [esp + 0x10c], ax
mov byte [esp + 0x188], 3
mov edi, dword [esp + 0x24]
mov edx, dword [edi]
mov edx, dword [edx + 0x18]
lea eax, [esp + 0x20]
push eax
mov ecx, edi
call edx
xor esi, esi
sub eax, esi
jne 0x5919e5
mov esi, dword [esp + 0x20]
xor dl, dl
cmp si, 0xa
jne 0x590ab1
inc dword [edi + 0x60]
mov eax, dword [ebx]
cmp eax, 5
jne 0x590b8b
push esi
mov esi, dword [esp + 0x4c]
push 1
mov ecx, esi
call fcn.00405180
cmp word [esp + 0x20], 0x3e
mov eax, dword [esi + 0x14]
mov dword [esp + 0x68], eax
jne 0x590a86
cmp eax, 3
jl 0x590a86
lea ecx, [eax - 2]
cmp ecx, eax
jbe 0x590aea
call fcn.006441b7
cmp dword [esi + 0x18], 8
lea edi, [esi + 4]
jb 0x590af7
mov eax, dword [edi]
jmp 0x590af9
mov eax, edi
mov ecx, dword [esp + 0x68]
cmp word [eax + ecx*2 - 4], 0x2d
lea edx, [ecx - 2]
jne 0x590a86
lea eax, [ecx - 3]
cmp eax, dword [esi + 0x14]
jbe 0x590b1d
call fcn.006441b7
mov ecx, dword [esp + 0x68]
cmp dword [esi + 0x18], 8
jb 0x590b25
mov edi, dword [edi]
cmp word [edi + ecx*2 - 6], 0x2d
lea eax, [ecx - 3]
jne 0x590a86
mov ecx, dword [esp + 0x68]
mov edi, esi
add ecx, 0xfffffffd
push edi
xor edx, edx
lea esi, [esp + 0x144]
call fcn.004014a0
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
mov byte [esp + 0x194], 6
call fcn.00401880
mov byte [esp + 0x188], 3
cmp dword [esp + 0x158], 8
jb 0x59170a
mov ecx, dword [esp + 0x144]
push ecx
call fcn.006441c7
add esp, 4
jmp 0x59170a
cmp eax, 4
jne 0x590c4f
cmp dword [ebx + 0x6c], 0
mov edi, dword [esp + 0x18]
jne 0x590baf
push esi
call fcn.0064528b
mov esi, dword [esp + 0x24]
add esp, 4
test eax, eax
je 0x590bb3
mov edi, dword [esp + 0x48]
push esi
push 1
mov ecx, edi
call fcn.00405180
cmp word [esp + 0x20], 0x3e
mov esi, dword [edi + 0x14]
jne 0x590a86
cmp esi, 2
jl 0x590a86
lea eax, [esi - 2]
cmp eax, esi
jbe 0x590be1
call fcn.006441b7
cmp dword [edi + 0x18], 8
jb 0x590bec
mov eax, dword [edi + 4]
jmp 0x590bef
lea eax, [edi + 4]
cmp word [eax + esi*2 - 4], 0x3f
lea ecx, [esi - 2]
jne 0x590a86
lea ecx, [esi - 2]
push edi
xor edx, edx
lea esi, [esp + 0x144]
call fcn.004014a0
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
mov byte [esp + 0x194], 7
call fcn.00401880
mov byte [esp + 0x188], 3
cmp dword [esp + 0x158], 8
jb 0x59170a
mov edx, dword [esp + 0x144]
push edx
call fcn.006441c7
add esp, 4
jmp 0x59170a
cmp si, 0x22
jne 0x590cbe
cmp byte [esp + 0x1f], 0
sete cl
mov byte [esp + 0x1f], cl
test eax, eax
je 0x590c6a
cmp eax, 3
jne 0x590c6c
mov dl, 1
test cl, cl
jne 0x590c75
mov byte [esp + 0x15], 1
test dl, dl
je 0x590a86
mov eax, dword [ebx]
test eax, eax
jne 0x590ebd
mov dword [ebx], 3
cmp byte [esp + 0x16], 0
je 0x590cad
mov esi, dword [esp + 0x18]
push 1
push 0x81dce8
call fcn.004106e0
mov esi, dword [esp + 0x20]
mov byte [esp + 0x16], 0
mov ecx, dword [esp + 0x18]
push esi
push 1
call fcn.00405180
jmp 0x590a86
cmp byte [esp + 0x1f], 0
jne 0x590c7d
cmp si, 0x3c
jne 0x590ce7
cmp eax, 3
je 0x59114d
test eax, eax
jne 0x591b9e
mov dword [ebx], 1
jmp 0x590a86
cmp si, 0x3e
je 0x591160
cmp si, 0x2f
jne 0x590d26
cmp eax, 1
jne 0x590d5b
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x14]
push 0x81d238
xor edi, edi
call fcn.00404150
test eax, eax
jne 0x590d1e
mov dword [ebx], 2
jmp 0x590a86
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
cmp si, 0x3f
jne 0x590d5b
cmp dword [ebx], 1
jne 0x590d5b
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x14]
push 0x81d238
xor edi, edi
call fcn.00404150
test eax, eax
jne 0x590d53
mov dword [ebx], 4
jmp 0x590a86
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
push esi
call fcn.0064528b
add esp, 4
test eax, eax
je 0x590db6
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x14]
push 0x81d238
xor edi, edi
call fcn.00404150
test eax, eax
je 0x590d84
mov byte [esp + 0x16], 1
cmp dword [ebx], 1
jne 0x590a86
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x14]
push 0x823498
mov edi, 3
call fcn.00404150
test eax, eax
jne 0x590a86
mov dword [ebx], 5
jmp 0x590a86
mov esi, dword [esp + 0x20]
cmp si, 0x20
ja 0x590c7d
push str.Illegal_Character
lea ecx, [esp + 0x144]
call fcn.00403550
lea ecx, [esp + 0x140]
mov eax, edi
mov byte [esp + 0x188], 0x24
call fcn.00590500
mov esi, 8
cmp dword [esp + 0x158], esi
jb 0x590e09
mov ecx, dword [esp + 0x144]
push ecx
call fcn.006441c7
add esp, 4
cmp dword [esp + 0x120], esi
jb 0x590e22
mov edx, dword [esp + 0x10c]
push edx
call fcn.006441c7
add esp, 4
xor edi, edi
xor eax, eax
mov ebx, 7
mov dword [esp + 0x120], ebx
mov dword [esp + 0x11c], edi
mov word [esp + 0x10c], ax
cmp dword [esp + 0x13c], esi
jb 0x590e5a
mov ecx, dword [esp + 0x128]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x138], edi
mov word [esp + 0x128], dx
cmp dword [esp + 0xe8], esi
jb 0x590e8b
mov eax, dword [esp + 0xd4]
push eax
call fcn.006441c7
add esp, 4
xor ecx, ecx
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xe4], edi
mov word [esp + 0xd4], cx
cmp dword [esp + 0x174], esi
jb 0x592088
mov edx, dword [esp + 0x160]
push edx
jmp 0x592080
cmp eax, 1
jne 0x590c8d
cmp byte [esp + 0x16], 0
je 0x5910fe
cmp byte [esp + 0x1e], 0
je 0x5910ef
cmp byte [esp + 0x17], 0
jne 0x590eee
cmp si, 0x3d
jne 0x590f03
jmp 0x5910f9
cmp dword [esp + 0xe4], 0
ja 0x590f03
cmp byte [esp + 0x15], 0
je 0x5910f9
lea edx, [esp + 0xd0]
lea ecx, [esp + 0x140]
call fcn.0043a070
mov edx, eax
lea esi, [esp + 0x28]
mov byte [esp + 0x188], 0x25
call fcn.00438cd0
mov edi, eax
lea edx, [esp + 0x15c]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x188], 0x26
call fcn.0043a070
mov edx, eax
lea esi, [esp + 0xec]
mov byte [esp + 0x188], 0x27
call fcn.00438cd0
push edi
push eax
push ebx
mov byte [esp + 0x194], 0x28
call fcn.00590550
cmp dword [esp + 0x104], 8
jb 0x590f83
mov eax, dword [esp + 0xf0]
push eax
call fcn.006441c7
add esp, 4
xor esi, esi
xor ecx, ecx
mov edi, 8
mov dword [esp + 0x104], 7
mov dword [esp + 0x100], esi
mov word [esp + 0xf0], cx
cmp dword [esp + 0x64], edi
jb 0x590fb9
mov edx, dword [esp + 0x50]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
mov dword [esp + 0x64], 7
mov dword [esp + 0x60], esi
mov word [esp + 0x50], ax
cmp dword [esp + 0x40], edi
jb 0x590fdf
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
mov byte [esp + 0x188], 3
mov dword [esp + 0x40], 7
mov dword [esp + 0x3c], esi
mov word [esp + 0x2c], dx
cmp dword [esp + 0x158], edi
jb 0x591013
mov eax, dword [esp + 0x144]
push eax
call fcn.006441c7
add esp, 4
lea edx, [esp + 0xd0]
lea esi, [esp + 0x140]
call fcn.00438cd0
mov edi, eax
lea edx, [esp + 0x15c]
lea esi, [esp + 0x28]
mov byte [esp + 0x188], 0x29
call fcn.00438cd0
push edi
push eax
push ebx
mov byte [esp + 0x194], 0x2a
call fcn.00590670
cmp dword [esp + 0x40], 8
jb 0x591064
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
mov byte [esp + 0x188], 3
cmp dword [esp + 0x158], 8
mov dword [esp + 0x40], 7
mov dword [esp + 0x3c], 0
mov word [esp + 0x2c], dx
jb 0x59109d
mov eax, dword [esp + 0x144]
push eax
call fcn.006441c7
add esp, 4
push 0
push 0x81d238
lea ecx, [esp + 0x164]
call fcn.00403a80
push 0
push 0x81d238
lea ecx, [esp + 0xd8]
call fcn.00403a80
push 0
push 0x81d238
lea ecx, [esp + 0x12c]
call fcn.00403a80
push 0
push 0x81d238
lea ecx, [esp + 0x110]
call fcn.00403a80
mov esi, dword [esp + 0x20]
jmp 0x5910f4
mov byte [esp + 0x1e], 1
mov byte [esp + 0x17], 0
mov byte [esp + 0x16], 0
cmp byte [esp + 0x1e], 0
jne 0x591116
mov ecx, dword [esp + 0x18]
push esi
push 1
call fcn.00405180
jmp 0x590a86
cmp si, 0x3d
jne 0x59112b
mov byte [esp + 0x17], 1
mov byte [esp + 0x15], 0
jmp 0x590a86
cmp byte [esp + 0x17], 0
lea ecx, [esp + 0x15c]
je 0x591140
lea ecx, [esp + 0xd0]
push esi
push 1
call fcn.00405180
jmp 0x590a86
mov eax, dword [edi]
mov edx, dword [eax + 0x1c]
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
call edx
jmp 0x59170a
cmp eax, 1
jne 0x591603
mov edi, eax
mov eax, dword [esp + 0x170]
push 0x8233ac
lea ecx, [esp + 0x160]
mov byte [esp + 0x19], 0
call fcn.00404150
test eax, eax
je 0x5914cc
cmp dword [esp + 0x170], 0
jbe 0x591304
lea edx, [esp + 0x15c]
lea ecx, [esp + 0x7c]
call fcn.0043a070
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x130]
mov byte [esp + 0x194], 9
call fcn.00401880
lea ecx, [esp + 0x7c]
mov byte [esp + 0x188], 3
call fcn.00406fb0
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x164]
push eax
lea ecx, [esp + 0x114]
call fcn.00401880
lea edx, [esp + 0xd0]
lea ecx, [esp + 0xec]
call fcn.0043a070
mov edx, eax
lea esi, [esp + 0x28]
mov byte [esp + 0x188], 0xa
call fcn.00438cd0
mov edi, eax
lea edx, [esp + 0x15c]
lea ecx, [esp + 0x140]
mov byte [esp + 0x188], 0xb
call fcn.0043a070
mov edx, eax
lea esi, [esp + 0x7c]
mov byte [esp + 0x188], 0xc
call fcn.00438cd0
push edi
push eax
push ebx
mov byte [esp + 0x194], 0xd
call fcn.00590550
mov ecx, esi
call fcn.00406fb0
lea ecx, [esp + 0x140]
call fcn.00406fb0
lea ecx, [esp + 0x28]
call fcn.00406fb0
lea ecx, [esp + 0xec]
mov byte [esp + 0x188], 3
call fcn.00406fb0
lea edx, [esp + 0xd0]
lea esi, [esp + 0x140]
call fcn.00438cd0
mov edi, eax
lea edx, [esp + 0x15c]
lea esi, [esp + 0x7c]
mov byte [esp + 0x188], 0xe
call fcn.00438cd0
push edi
push eax
push ebx
mov byte [esp + 0x194], 0xf
call fcn.00590670
mov ecx, esi
call fcn.00406fb0
lea ecx, [esp + 0x140]
mov byte [esp + 0x188], 3
call fcn.00406fb0
push 0
push 0x81d238
lea ecx, [esp + 0x164]
call fcn.00403a80
push 0
push 0x81d238
lea ecx, [esp + 0xd8]
call fcn.00403a80
cmp dword [esp + 0x138], 0
jbe 0x5915ac
lea edx, [esp + 0x124]
lea esi, [esp + 0x7c]
call fcn.00438cd0
mov ecx, dword [esp + 0x78]
push eax
mov byte [esp + 0x18c], 0x10
call fcn.00416180
push eax
lea ecx, [esp + 0xf0]
call fcn.00403590
mov ecx, esi
mov byte [esp + 0x188], 0x12
call fcn.00406fb0
mov eax, dword [esp + 0x100]
test eax, eax
jle 0x5913f0
lea esi, [eax - 1]
push esi
lea ecx, [esp + 0xf0]
call fcn.00401470
cmp word [eax], 0x2f
jne 0x5913f0
lea ecx, [esp + 0xec]
push ecx
mov ecx, esi
xor edx, edx
lea esi, [esp + 0x50]
call fcn.004014a0
mov edx, eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x188], 0x13
call fcn.0043a070
mov edi, eax
lea edx, [esp + 0x124]
lea esi, [esp + 0x140]
mov byte [esp + 0x188], 0x14
call fcn.00438cd0
push edi
push eax
push ebx
mov byte [esp + 0x194], 0x15
call fcn.00590550
mov ecx, esi
call fcn.00406fb0
lea ecx, [esp + 0x28]
call fcn.00406fb0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x188], 0x12
call fcn.00406fb0
mov byte [esp + 0x15], 1
lea edx, [esp + 0x108]
lea esi, [esp + 0x140]
call fcn.00438cd0
mov ecx, dword [esp + 0x74]
push eax
mov byte [esp + 0x18c], 0x16
call fcn.00416180
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0xf8]
call fcn.00401880
mov ecx, esi
mov byte [esp + 0x188], 0x12
call fcn.00406fb0
mov eax, dword [esp + 0x100]
test eax, eax
jle 0x5914ad
lea esi, [eax - 1]
push esi
lea ecx, [esp + 0xf0]
call fcn.00401470
cmp word [eax], 0x2f
jne 0x5914ad
lea edx, [esp + 0xec]
push edx
mov ecx, esi
xor edx, edx
lea esi, [esp + 0x2c]
call fcn.004014a0
mov edi, eax
lea edx, [esp + 0x108]
lea esi, [esp + 0x140]
mov byte [esp + 0x188], 0x17
call fcn.00438cd0
push edi
push eax
push ebx
mov byte [esp + 0x194], 0x18
call fcn.00590670
mov ecx, esi
call fcn.00406fb0
lea ecx, [esp + 0x28]
call fcn.00406fb0
mov byte [esp + 0x15], 1
lea ecx, [esp + 0xec]
mov byte [esp + 0x188], 3
call fcn.00406fb0
cmp byte [esp + 0x15], 0
je 0x59157b
mov eax, dword [esp + 0x18]
push eax
mov edx, 0x823410
lea esi, [esp + 0x2c]
call fcn.00406c30
add esp, 4
mov edx, 0x82340c
mov ecx, eax
lea edi, [esp + 0x140]
mov byte [esp + 0x188], 0x1a
call fcn.00410080
mov esi, 8
mov byte [esp + 0x188], 0x1c
cmp dword [esp + 0x40], esi
jb 0x59151d
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.006441c7
add esp, 4
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
xor edx, edx
mov word [esp + 0x2c], dx
lea edx, [esp + 0x140]
push edx
mov dword [esp + 0x44], 7
mov dword [esp + 0x40], 0
call eax
push 0
push 0x81d238
lea ecx, [esp + 0x164]
call fcn.00403a80
mov byte [esp + 0x188], 3
cmp dword [esp + 0x158], esi
jb 0x59157b
mov ecx, dword [esp + 0x144]
push ecx
call fcn.006441c7
add esp, 4
mov edx, dword [esp + 0x24]
cmp dword [edx + 0x7c], 0
je 0x591595
mov esi, dword [esp + 0x44]
push 1
push 0x8233ac
call fcn.004106e0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
push 0xffffffffffffffff
push 0
push eax
call fcn.004041c0
jmp 0x59170a
mov eax, dword [ebx + 0x34]
test eax, eax
jle 0x59157b
mov ecx, dword [esp + 0x18]
lea esi, [eax - 1]
push esi
call fcn.00401470
cmp word [eax], 0x2f
jne 0x59157b
mov edi, dword [esp + 0x18]
mov ecx, esi
push edi
xor edx, edx
lea esi, [esp + 0x80]
call fcn.004014a0
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
mov byte [esp + 0x194], 0x19
call fcn.00401880
mov ecx, esi
mov byte [esp + 0x188], 3
call fcn.00406fb0
jmp 0x5914cc
cmp eax, 2
jne 0x591f63
mov ebx, dword [esp + 0x44]
lea edi, [esp + 0x68]
mov dword [esp + 0x68], 0x2f
call fcn.0043bf30
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x591637
mov esi, dword [esp + 0x24]
xor edi, edi
cmp dword [esi + 0x7c], edi
je 0x591cb4
mov edi, dword [esp + 0x44]
lea edx, [ebx + 1]
push edi
or ecx, 0xffffffff
lea esi, [esp + 0xf0]
call fcn.004014a0
mov esi, dword [esp + 0x18]
mov eax, esi
lea ecx, [esp + 0xec]
mov byte [esp + 0x188], 0x1e
call fcn.00406cf0
test al, al
jne 0x591d8e
cmp ebx, 0xffffffff
jne 0x59169b
lea ecx, [esp + 0xb0]
push ecx
mov ecx, edi
call fcn.00404bf0
mov esi, dword [eax]
mov ebx, dword [eax + 4]
lea edx, [esp + 0xb8]
push edx
mov ecx, edi
call fcn.00404bb0
push ebx
jmp 0x5916dd
lea ecx, [esp + 0xc0]
push ecx
mov ecx, edi
call fcn.00404bf0
mov edx, dword [eax + 4]
mov esi, dword [eax]
push ebx
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0xb0]
push ecx
mov ecx, edi
mov dword [esp + 0xb0], edx
call fcn.00404bb0
mov ecx, eax
call fcn.0041d110
mov edx, dword [esp + 0xa4]
push edx
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push esi
push ecx
push edx
lea eax, [esp + 0x78]
push eax
call fcn.00405240
lea ecx, [esp + 0xec]
mov byte [esp + 0x188], 3
call fcn.00406fb0
mov ebx, dword [esp + 0x98]
xor edi, edi
cmp dword [esp + 0x170], edi
jbe 0x5918ac
lea edx, [esp + 0xd0]
lea ecx, [esp + 0x140]
call fcn.0043a070
mov edx, eax
lea esi, [esp + 0x4c]
mov byte [esp + 0x188], 0x2c
call fcn.00438cd0
mov edi, eax
lea edx, [esp + 0x15c]
lea ecx, [esp + 0xec]
mov byte [esp + 0x188], 0x2d
call fcn.0043a070
mov edx, eax
lea esi, [esp + 0x28]
mov byte [esp + 0x188], 0x2e
call fcn.00438cd0
push edi
push eax
push ebx
mov byte [esp + 0x194], 0x2f
call fcn.00590550
cmp dword [esp + 0x40], 8
jb 0x591793
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.006441c7
add esp, 4
xor edi, edi
xor edx, edx
cmp dword [esp + 0x104], 8
mov esi, 7
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edi
mov word [esp + 0x2c], dx
jb 0x5917c3
mov eax, dword [esp + 0xf0]
push eax
call fcn.006441c7
add esp, 4
xor ecx, ecx
cmp dword [esp + 0x64], 8
mov dword [esp + 0x104], esi
mov dword [esp + 0x100], edi
mov word [esp + 0xf0], cx
jb 0x5917ef
mov edx, dword [esp + 0x50]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
mov byte [esp + 0x188], 3
cmp dword [esp + 0x158], 8
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], edi
mov word [esp + 0x50], ax
jb 0x591820
mov ecx, dword [esp + 0x144]
push ecx
call fcn.006441c7
add esp, 4
lea edx, [esp + 0xd0]
lea esi, [esp + 0x140]
call fcn.00438cd0
mov edi, eax
lea edx, [esp + 0x15c]
lea esi, [esp + 0x28]
mov byte [esp + 0x188], 0x30
call fcn.00438cd0
push edi
push eax
push ebx
mov byte [esp + 0x194], 0x31
call fcn.00590550
cmp dword [esp + 0x40], 8
jb 0x591871
mov edx, dword [esp + 0x2c]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
mov byte [esp + 0x188], 3
cmp dword [esp + 0x158], 8
mov dword [esp + 0x40], 7
mov dword [esp + 0x3c], 0
mov word [esp + 0x2c], ax
jb 0x5918aa
mov ecx, dword [esp + 0x144]
push ecx
call fcn.006441c7
add esp, 4
xor edi, edi
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x70]
push 0xffffffffffffffff
push edi
push esi
call fcn.00401880
mov edx, esi
lea ecx, [esp + 0x28]
call fcn.0043a070
push 0xffffffffffffffff
push edi
push eax
mov ecx, esi
mov byte [esp + 0x194], 0x32
call fcn.00401880
mov byte [esp + 0x188], 3
cmp dword [esp + 0x40], 8
jb 0x5918f7
mov edx, dword [esp + 0x2c]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
cmp dword [ebx], 5
mov esi, 7
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edi
mov word [esp + 0x2c], ax
jne 0x591f2c
mov ecx, dword [esp + 0x24]
cmp byte [ecx + 0x65], al
jne 0x591f2c
cmp dword [esp + 0x120], 8
jb 0x59193b
mov edx, dword [esp + 0x10c]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
cmp dword [esp + 0x13c], 8
mov dword [esp + 0x120], esi
mov dword [esp + 0x11c], edi
mov word [esp + 0x10c], ax
jb 0x59196d
mov ecx, dword [esp + 0x128]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
cmp dword [esp + 0xe8], 8
mov dword [esp + 0x13c], esi
mov dword [esp + 0x138], edi
mov word [esp + 0x128], dx
jb 0x59199f
mov eax, dword [esp + 0xd4]
push eax
call fcn.006441c7
add esp, 4
xor ecx, ecx
mov dword [esp + 0x188], 0xffffffff
cmp dword [esp + 0x174], 8
mov dword [esp + 0xe8], esi
mov dword [esp + 0xe4], edi
mov word [esp + 0xd4], cx
jb 0x590900
mov edx, dword [esp + 0x160]
push edx
call fcn.006441c7
add esp, 4
jmp 0x590900
sub eax, 1
je 0x591a75
sub eax, 2
jne 0x591fa1
push 0xe
mov ebx, 7
push str.Internal_Error
lea ecx, [esp + 0x54]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x68], esi
mov word [esp + 0x58], ax
call fcn.00403a80
lea ecx, [esp + 0x4c]
mov eax, edi
mov byte [esp + 0x188], 5
call fcn.00590500
mov edi, 8
cmp dword [esp + 0x64], edi
jb 0x591a44
mov ecx, dword [esp + 0x50]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], esi
mov word [esp + 0x50], dx
cmp dword [esp + 0x120], edi
jb 0x591ff5
mov eax, dword [esp + 0x10c]
push eax
call fcn.006441c7
add esp, 4
jmp 0x591ff5
xor ecx, ecx
push 0x11
mov word [esp + 0xf4], cx
mov ebx, 7
push str.Illegal_Character
lea ecx, [esp + 0xf4]
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x108], esi
call fcn.00403a80
lea ecx, [esp + 0xec]
mov eax, edi
mov byte [esp + 0x188], 4
call fcn.00590500
mov edi, 8
cmp dword [esp + 0x104], edi
jb 0x591ad9
mov edx, dword [esp + 0xf0]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
mov dword [esp + 0x104], ebx
mov dword [esp + 0x100], esi
mov word [esp + 0xf0], ax
cmp dword [esp + 0x120], edi
jb 0x591b0a
mov ecx, dword [esp + 0x10c]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
mov dword [esp + 0x120], ebx
mov dword [esp + 0x11c], esi
mov word [esp + 0x10c], dx
cmp dword [esp + 0x13c], edi
jb 0x591b3b
mov eax, dword [esp + 0x128]
push eax
call fcn.006441c7
add esp, 4
xor ecx, ecx
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x138], esi
mov word [esp + 0x128], cx
cmp dword [esp + 0xe8], edi
jb 0x591b6c
mov edx, dword [esp + 0xd4]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xe4], esi
mov word [esp + 0xd4], ax
cmp dword [esp + 0x174], edi
jb 0x592088
mov ecx, dword [esp + 0x160]
push ecx
jmp 0x592080
push 0xe
xor edx, edx
xor esi, esi
push 0x8233ec
lea ecx, [esp + 0xf4]
mov dword [esp + 0x10c], 7
mov dword [esp + 0x108], esi
mov word [esp + 0xf8], dx
call fcn.00403a80
mov ebx, 8
lea ecx, [esp + 0xec]
mov eax, edi
mov byte [esp + 0x188], bl
call fcn.00590500
cmp dword [esp + 0x104], ebx
jb 0x591c02
mov eax, dword [esp + 0xf0]
push eax
call fcn.006441c7
add esp, 4
cmp dword [esp + 0x120], ebx
jb 0x591c1b
mov ecx, dword [esp + 0x10c]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
mov edi, 7
mov dword [esp + 0x120], edi
mov dword [esp + 0x11c], esi
mov word [esp + 0x10c], dx
cmp dword [esp + 0x13c], ebx
jb 0x591c51
mov eax, dword [esp + 0x128]
push eax
call fcn.006441c7
add esp, 4
xor ecx, ecx
mov dword [esp + 0x13c], edi
mov dword [esp + 0x138], esi
mov word [esp + 0x128], cx
cmp dword [esp + 0xe8], ebx
jb 0x591c82
mov edx, dword [esp + 0xd4]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
mov dword [esp + 0xe8], edi
mov dword [esp + 0xe4], esi
mov word [esp + 0xd4], ax
cmp dword [esp + 0x174], ebx
jb 0x592088
mov ecx, dword [esp + 0x160]
push ecx
jmp 0x592080
push str.Unexpected_End
lea ecx, [esp + 0x144]
call fcn.00403550
lea ecx, [esp + 0x140]
mov eax, esi
mov byte [esp + 0x188], 0x1d
call fcn.00590500
mov esi, 8
cmp dword [esp + 0x158], esi
jb 0x591cf9
mov edx, dword [esp + 0x144]
push edx
call fcn.006441c7
add esp, 4
cmp dword [esp + 0x120], esi
jb 0x591d12
mov eax, dword [esp + 0x10c]
push eax
call fcn.006441c7
add esp, 4
xor ecx, ecx
mov ebx, 7
mov dword [esp + 0x120], ebx
mov dword [esp + 0x11c], edi
mov word [esp + 0x10c], cx
cmp dword [esp + 0x13c], esi
jb 0x591d48
mov edx, dword [esp + 0x128]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x138], edi
mov word [esp + 0x128], ax
cmp dword [esp + 0xe8], esi
jb 0x591d79
mov ecx, dword [esp + 0xd4]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
cmp dword [esp + 0x174], esi
mov dword [esp + 0xe4], edi
jmp 0x592067
push esi
mov edx, str.End_
lea esi, [esp + 0x80]
call fcn.00406c30
add esp, 4
mov edx, 0x82343c
mov ecx, eax
lea edi, [esp + 0x140]
mov byte [esp + 0x188], 0x1f
call fcn.00410080
lea ecx, [esp + 0xec]
push ecx
mov ecx, eax
lea esi, [esp + 0x50]
mov byte [esp + 0x18c], 0x20
call fcn.00404070
add esp, 4
mov edx, 0x823438
mov ecx, eax
lea edi, [esp + 0x28]
mov byte [esp + 0x188], 0x21
call fcn.00410080
mov ecx, eax
mov eax, dword [esp + 0x24]
mov byte [esp + 0x188], 0x22
call fcn.00590500
mov esi, 8
cmp dword [esp + 0x40], esi
jb 0x591e1f
mov edx, dword [esp + 0x2c]
push edx
call fcn.006441c7
add esp, 4
xor edi, edi
xor eax, eax
mov ebx, 7
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], edi
mov word [esp + 0x2c], ax
cmp dword [esp + 0x64], esi
jb 0x591e48
mov ecx, dword [esp + 0x50]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], edi
mov word [esp + 0x50], dx
cmp dword [esp + 0x158], esi
jb 0x591e70
mov eax, dword [esp + 0x144]
push eax
call fcn.006441c7
add esp, 4
xor ecx, ecx
mov dword [esp + 0x158], ebx
mov dword [esp + 0x154], edi
mov word [esp + 0x144], cx
cmp dword [esp + 0x94], esi
jb 0x591ea1
mov edx, dword [esp + 0x80]
push edx
call fcn.006441c7
add esp, 4
cmp dword [esp + 0x104], esi
jb 0x591eba
mov eax, dword [esp + 0xf0]
push eax
call fcn.006441c7
add esp, 4
xor ecx, ecx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x100], edi
mov word [esp + 0xf0], cx
cmp dword [esp + 0x120], esi
jb 0x591eeb
mov edx, dword [esp + 0x10c]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
mov dword [esp + 0x120], ebx
mov dword [esp + 0x11c], edi
mov word [esp + 0x10c], ax
lea ecx, [esp + 0x124]
call fcn.00406fb0
lea ecx, [esp + 0xd0]
call fcn.00406fb0
lea ecx, [esp + 0x15c]
call fcn.00406fb0
jmp 0x592088
lea ecx, [esp + 0x108]
call fcn.00406fb0
lea ecx, [esp + 0x124]
call fcn.00406fb0
lea ecx, [esp + 0xd0]
call fcn.00406fb0
lea ecx, [esp + 0x15c]
call fcn.00406fb0
mov al, 1
jmp 0x59208a
push str.Unexpected__
lea ecx, [esp + 0x80]
call fcn.00403550
lea ecx, [esp + 0x7c]
mov eax, edi
mov byte [esp + 0x188], 0x23
call fcn.00590500
lea ecx, [esp + 0x7c]
call fcn.00406fb0
lea ecx, [esp + 0x108]
call fcn.00406fb0
jmp 0x591f03
cmp dword [ebx], esi
je 0x591fd2
push str.Unexpected_End_of_File
lea ecx, [esp + 0x80]
call fcn.00403550
lea ecx, [esp + 0x7c]
mov eax, edi
mov byte [esp + 0x188], 0x2b
call fcn.00590500
lea ecx, [esp + 0x7c]
call fcn.00406fb0
mov edi, 8
cmp dword [esp + 0x120], edi
jb 0x591ff0
mov eax, dword [esp + 0x10c]
push eax
call fcn.006441c7
add esp, 4
mov ebx, 7
xor ecx, ecx
mov word [esp + 0x10c], cx
mov dword [esp + 0x11c], esi
mov dword [esp + 0x120], ebx
cmp dword [esp + 0x13c], edi
jb 0x592026
mov edx, dword [esp + 0x128]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
mov word [esp + 0x128], ax
mov dword [esp + 0x138], esi
mov dword [esp + 0x13c], ebx
cmp dword [esp + 0xe8], edi
jb 0x592057
mov ecx, dword [esp + 0xd4]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
cmp dword [esp + 0x174], edi
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe8], ebx
mov word [esp + 0xd4], dx
jb 0x592088
mov eax, dword [esp + 0x160]
push eax
call fcn.006441c7
add esp, 4
xor al, al
mov ecx, dword [esp + 0x180]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x168]
xor ecx, esp
call fcn.00643db8
mov esp, ebp
pop ebp
ret 4