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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x723e81
push eax
mov dword fs:[0], esp
sub esp, 0x134
push ebx
push ebp
mov ebp, dword [esp + 0x14c]
cmp dword [ebp], 0xffffffff
push esi
push edi
mov esi, ecx
je 0x5d412b
mov edi, dword [esp + 0x158]
lea esp, [esp]
mov eax, dword [ebp]
mov ecx, dword [esp + 0x15c]
inc eax
cmp eax, ecx
jge 0x5d412f
mov ecx, dword [esi + 0x24]
inc ecx
mov eax, ecx
cmp eax, 0x20000
mov dword [esi + 0x24], ecx
jge 0x5d4136
mov eax, dword [ebp]
mov dl, byte [eax + edi]
mov bl, byte [eax + edi + 1]
movzx ecx, dl
dec ecx
cmp ecx, 0x2b
mov byte [esp + 0x13], dl
ja case.default.0x5d2c52
jmp dword [ecx*4 + 0x5d41b4]
movsx ebx, byte [eax + edi + 2]
xor ecx, ecx
mov cl, byte [eax + edi + 3]
shl ebx, 8
and ecx, 0xff
add ecx, ebx
xor ebx, ebx
mov bl, byte [eax + edi + 4]
shl ecx, 8
and ebx, 0xff
add ecx, ebx
xor ebx, ebx
mov bl, byte [eax + edi + 5]
shl ecx, 8
and ebx, 0xff
add ecx, ebx
xor ebx, ebx
mov bh, byte [eax + edi + 6]
movzx ax, byte [eax + edi + 7]
xor ebx, eax
cmp dl, 1
mov dword [esp + 0x18], ebx
jne 0x5d2d16
mov eax, dword [esi + 0x1ac]
neg ecx
sar ecx, 2
sub eax, ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
mov cx, word [esp + 0x18]
sar cx, 2
test eax, eax
jl 0x5d417f
movsx eax, cx
xor ebx, ebx
test eax, eax
mov dword [esp + 0x14], eax
jle 0x5d2d0b
jmp 0x5d2ce0
mov ecx, dword [esp + 0x50]
mov eax, dword [esi + 0x1ac]
lea edx, [ebx + ecx]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esi + 0x1ac]
sub eax, edx
add eax, ebx
push eax
call fcn.005d1c40
mov eax, dword [esp + 0x14]
inc ebx
cmp ebx, eax
jl 0x5d2ce0
mov eax, dword [ebp]
add eax, 8
jmp 0x5d411e
cmp dl, 0x26
jne 0x5d2cb9
mov eax, dword [esi + 0x1b0]
neg ecx
sar ecx, 2
sub eax, ecx
mov dword [esp + 0x50], eax
jmp 0x5d2cbd
cmp bl, 3
jne 0x5d2d49
push 0
mov ecx, esi
call fcn.005d1850
test eax, eax
je 0x5d4142
jmp 0x5d4118
cmp bl, 4
jne 0x5d2d64
push 0
mov ecx, esi
call fcn.005d1880
test eax, eax
je 0x5d4142
jmp 0x5d4118
cmp bl, 5
jne 0x5d2db8
push 0x73d71c
lea ecx, [esp + 0xdc]
call fcn.005e5a90
lea ecx, [esp + 0xd8]
push ecx
mov ecx, esi
mov dword [esp + 0x150], 0
call fcn.005d1930
test eax, eax
lea ecx, [esp + 0xd8]
mov dword [esp + 0x14c], 0xffffffff
je 0x5d413d
call fcn.005e5c20
jmp 0x5d4118
cmp bl, 6
jne 0x5d2dd6
push 0x7f000000
mov ecx, esi
call fcn.005d1a10
test eax, eax
je 0x5d4142
jmp 0x5d4118
cmp bl, 0x10
jb 0x5d418d
cmp bl, 0x19
ja 0x5d418d
movzx edx, bl
push 0
sub edx, 0x10
push edx
mov ecx, esi
call fcn.005d19c0
test eax, eax
je 0x5d4142
jmp 0x5d4118
movsx ebx, byte [eax + edi + 2]
xor ecx, ecx
mov cl, byte [eax + edi + 3]
shl ebx, 8
and ecx, 0xff
add ecx, ebx
xor ebx, ebx
mov bl, byte [eax + edi + 4]
shl ecx, 8
and ebx, 0xff
add ecx, ebx
xor ebx, ebx
mov bl, byte [eax + edi + 5]
shl ecx, 8
and ebx, 0xff
add ecx, ebx
xor ebx, ebx
mov bh, byte [eax + edi + 6]
movzx ax, byte [eax + edi + 7]
xor ebx, eax
cmp dl, 3
mov dword [esp + 0x18], ebx
jne 0x5d2ebf
mov eax, dword [esi + 0x1ac]
neg ecx
sar ecx, 2
sub eax, ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov dx, word [esp + 0x18]
sar dx, 2
test eax, eax
jl 0x5d417f
mov ecx, dword [esi + 0x1ac]
movsx eax, dx
test eax, eax
jle 0x5d2eb4
mov ebx, dword [esp + 0x34]
sub ecx, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x18]
add ecx, ebx
push ecx
push ebx
lea ecx, [esi + 0x1ac]
call fcn.005d1c40
mov eax, dword [esp + 0x14]
inc ebx
dec eax
mov dword [esp + 0x14], eax
jne 0x5d2e95
mov eax, dword [ebp]
add eax, 8
jmp 0x5d411e
cmp dl, 0x27
jne 0x5d2e65
mov eax, dword [esi + 0x1b0]
neg ecx
sar ecx, 2
sub eax, ecx
mov dword [esp + 0x34], eax
jmp 0x5d2e69
cmp bl, 3
jne 0x5d2f2d
movsx ecx, byte [eax + edi + 2]
xor edx, edx
mov dl, byte [eax + edi + 3]
shl ecx, 8
and edx, 0xff
add edx, ecx
xor ecx, ecx
mov cl, byte [eax + edi + 4]
movsx eax, byte [eax + edi + 5]
shl edx, 8
and eax, 0xff
and ecx, 0xff
add edx, ecx
shl edx, 8
add eax, edx
push eax
mov ecx, esi
call fcn.005d1850
test eax, eax
je 0x5d4142
mov eax, dword [ebp]
add eax, 6
jmp 0x5d411e
cmp bl, 6
jne 0x5d2fa7
movsx edx, byte [eax + edi + 2]
xor ecx, ecx
mov cl, byte [eax + edi + 3]
shl edx, 8
and ecx, 0xff
add ecx, edx
xor edx, edx
mov dl, byte [eax + edi + 4]
movsx eax, byte [eax + edi + 5]
shl ecx, 8
and eax, 0xff
and edx, 0xff
add ecx, edx
shl ecx, 8
add eax, ecx
cmp eax, 1
mov ecx, 0x7f000000
jne 0x5d2f74
jmp 0x5d2f8c
test eax, eax
jne 0x5d2f8c
mov eax, dword [esi + 0x28]
cmp dword [esi + eax*4 + 0x16c], 1
jne 0x5d2f8c
mov ecx, dword [esi + eax*4 + 0x18c]
push ecx
mov ecx, esi
call fcn.005d1a10
test eax, eax
je 0x5d4142
mov eax, dword [ebp]
add eax, 6
jmp 0x5d411e
cmp bl, 4
jne 0x5d2ffd
movsx edx, byte [eax + edi + 2]
xor ecx, ecx
mov cl, byte [eax + edi + 3]
shl edx, 8
and ecx, 0xff
add ecx, edx
xor edx, edx
mov dl, byte [eax + edi + 4]
movsx eax, byte [eax + edi + 5]
shl ecx, 8
and eax, 0xff
and edx, 0xff
add ecx, edx
shl ecx, 8
add eax, ecx
push eax
mov ecx, esi
call fcn.005d1880
test eax, eax
je 0x5d4142
mov eax, dword [ebp]
add eax, 6
jmp 0x5d411e
cmp bl, 5
jne 0x5d418d
lea ecx, [esp + 0x88]
call fcn.005b3190
mov ecx, dword [ebp]
lea eax, [ecx + edi]
xor edx, edx
mov dh, byte [eax + 2]
movzx ax, byte [eax + 3]
mov dword [esp + 0x14c], 1
xor eax, edx
movsx eax, ax
mov dword [esp + 0x18], eax
inc eax
push eax
call fcn.006fa7e6
mov ecx, dword [esp + 0x1c]
add esp, 4
xor ebx, ebx
test ecx, ecx
mov dword [esp + 0x48], eax
jle 0x5d3061
mov edi, edi
mov edx, dword [ebp]
add edx, ebx
mov dl, byte [edx + edi + 4]
mov byte [eax + ebx], dl
inc ebx
cmp ebx, ecx
jl 0x5d3050
push eax
mov byte [ecx + eax], 0
lea eax, [esp + 0x8c]
push 0x73d5d0
push eax
call fcn.005e5680
mov ecx, dword [esp + 0x54]
push ecx
call fcn.006fa390
add esp, 0x10
lea edx, [esp + 0x88]
push edx
mov ecx, esi
call fcn.005d1930
test eax, eax
lea ecx, [esp + 0x88]
mov dword [esp + 0x14c], 0xffffffff
je 0x5d413d
mov eax, dword [ebp]
add ebx, 4
add eax, ebx
mov dword [ebp], eax
call fcn.005e5c20
jmp 0x5d4121
movzx cx, byte [eax + edi + 3]
xor edx, edx
mov dh, byte [eax + edi + 2]
mov al, byte [eax + edi + 4]
xor edx, ecx
mov ecx, dword [esi + 0x3d4]
test ecx, ecx
je 0x5d4149
mov ebx, dword [ecx]
movzx eax, al
movsx edx, dx
push eax
push edx
call dword [ebx + 8]
test eax, eax
jl 0x5d4199
mov eax, dword [ebp]
add eax, 5
jmp 0x5d411e
cmp bl, 0x20
jne 0x5d418d
lea eax, [esp + 0xe8]
push eax
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
lea ecx, [esp + 0xcc]
push ecx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov eax, dword [esp + 0xcc]
test eax, eax
je 0x5d3579
mov eax, dword [esp + 0xe8]
test eax, eax
je 0x5d3579
push 1
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp bl, 0x20
jne 0x5d418d
lea edx, [esp + 0xc0]
push edx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
lea eax, [esp + 0xac]
push eax
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov eax, dword [esp + 0xac]
test eax, eax
jne 0x5d31c1
mov eax, dword [esp + 0xc0]
test eax, eax
jne 0x5d31c1
push 0
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
push 1
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp bl, 0x20
jne 0x5d418d
lea ecx, [esp + 0xd0]
push ecx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
lea edx, [esp + 0xc8]
push edx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0xc8]
or eax, edx
push eax
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp bl, 0x20
jne 0x5d418d
lea ecx, [esp + 0x108]
push ecx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
lea edx, [esp + 0xf8]
push edx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov edx, dword [esp + 0x108]
mov eax, dword [esp + 0xf8]
xor eax, edx
push eax
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp bl, 0x20
jne 0x5d418d
lea ecx, [esp + 0xa4]
push ecx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
lea edx, [esp + 0x110]
push edx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x110]
and eax, edx
push eax
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp bl, 0x20
je 0x5d32f6
cmp bl, 0x21
je 0x5d32f6
cmp bl, 0x22
je 0x5d32f6
cmp bl, 0x23
je 0x5d32f6
cmp bl, 0x24
je 0x5d32f6
cmp bl, 0x30
jb 0x5d418d
cmp bl, 0x39
ja 0x5d418d
cmp bl, 0x24
mov dword [esp + 0x14], 4
jne 0x5d3315
movzx dx, byte [eax + edi + 3]
xor ecx, ecx
mov ch, byte [eax + edi + 2]
xor ecx, edx
mov dword [esp + 0x14], ecx
mov ax, word [esp + 0x14]
mov ebp, dword [esi + 0x1ac]
movsx ecx, ax
sar ecx, 1
cmp ebp, ecx
mov dword [esp + 0x1c], 1
jl 0x5d417f
sar ax, 2
movsx eax, ax
test eax, eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x18], eax
jle 0x5d3413
mov ecx, ebp
sub ecx, eax
shl ecx, 2
jmp 0x5d3360
mov edx, dword [esi + 0x1b8]
movsx eax, byte [edx + ebp - 1]
dec ebp
sub ecx, 4
cmp eax, 3
mov dword [esp + 0x14], ecx
mov dword [esp + 0x58], eax
je 0x5d343d
cmp eax, 4
je 0x5d343d
cmp eax, 6
je 0x5d343d
cmp eax, 5
jne 0x5d33af
mov eax, dword [esi + 0x1bc]
mov edx, dword [esp + 0x14]
mov ecx, dword [eax + ebp*4]
mov eax, dword [edx + eax]
push eax
call fcn.005e6450
jmp 0x5d33f2
cmp eax, 0x10
jl 0x5d4150
cmp eax, 0x19
jg 0x5d4150
mov eax, dword [esi + 0x1bc]
mov edx, dword [eax + ebp*4]
mov eax, dword [ecx + eax]
mov ecx, dword [esi + 0x3d4]
test ecx, ecx
mov dword [esp + 0x54], edx
je 0x5d4149
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
push eax
call dword [edx + 0x1c]
test eax, eax
jne 0x5d33fa
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
inc eax
cmp eax, edx
mov dword [esp + 0x48], eax
jl 0x5d3360
mov eax, dword [esp + 0x18]
lea ecx, [eax + eax]
mov eax, dword [esi + 0x1ac]
mov edx, ecx
lea ecx, [esi + 0x1ac]
sub eax, edx
push eax
call fcn.005d21f0
cmp byte [esp + 0x13], 0xb
jne 0x5d3455
mov eax, dword [esp + 0x1c]
jmp 0x5d3460
mov eax, dword [esi + 0x1bc]
mov edx, dword [eax + ebp*4]
cmp edx, dword [ecx + eax]
je 0x5d33fe
mov dword [esp + 0x1c], 0
jmp 0x5d33fe
mov ecx, dword [esp + 0x1c]
xor eax, eax
test ecx, ecx
sete al
push eax
mov ecx, esi
call fcn.005d1850
cmp bl, 0x24
mov ebp, dword [esp + 0x154]
mov eax, ebp
mov ecx, dword [eax]
jne 0x5d3482
add ecx, 4
mov dword [eax], ecx
jmp 0x5d4121
add ecx, 2
mov dword [eax], ecx
jmp 0x5d4121
cmp bl, 0x20
jne 0x5d3531
lea ecx, [esp + 0x28]
push ecx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
lea edx, [esp + 0x4c]
push edx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov al, byte [esp + 0x13]
cmp al, 0xd
jne 0x5d34dd
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x28]
jge 0x5d3523
push 0
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp al, 0x10
jne 0x5d34f9
mov ecx, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x28]
jle 0x5d3523
push 0
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp al, 0xe
jne 0x5d3515
mov edx, dword [esp + 0x4c]
cmp edx, dword [esp + 0x28]
jg 0x5d3523
push 0
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp al, 0xf
jne 0x5d3579
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x28]
jge 0x5d3579
push 1
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp bl, 0x21
jne 0x5d418d
lea ecx, [esp + 0x3c]
push ecx
mov ecx, esi
call fcn.005d2510
test eax, eax
je 0x5d417f
lea edx, [esp + 0x44]
push edx
mov ecx, esi
call fcn.005d2510
test eax, eax
je 0x5d417f
mov al, byte [esp + 0x13]
cmp al, 0xd
jne 0x5d3587
fld dword [esp + 0x44]
fcomp dword [esp + 0x3c]
fnstsw ax
test ah, 1
je 0x5d35ce
push 0
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp al, 0x10
jne 0x5d35a8
fld dword [esp + 0x44]
fcomp dword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jnp 0x5d35ce
push 0
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp al, 0xe
jne 0x5d35bb
fld dword [esp + 0x44]
fcomp dword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jmp 0x5d3577
cmp al, 0xf
jne 0x5d3579
fld dword [esp + 0x44]
fcomp dword [esp + 0x3c]
fnstsw ax
test ah, 5
jp 0x5d3579
push 1
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp bl, 0x20
jne 0x5d418d
lea eax, [esp + 0xb4]
push eax
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
lea ecx, [esp + 0xf0]
push ecx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xf0]
shl edx, cl
mov ecx, esi
push edx
call fcn.005d1850
jmp 0x5d4118
cmp bl, 0x20
jne 0x5d418d
lea eax, [esp + 0x7c]
push eax
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
lea ecx, [esp + 0xec]
push ecx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov eax, dword [esp + 0xec]
test eax, eax
mov ecx, dword [esp + 0x7c]
jge 0x5d3686
neg eax
sar eax, cl
mov ecx, esi
neg eax
push eax
call fcn.005d1850
jmp 0x5d4118
sar eax, cl
mov ecx, esi
push eax
call fcn.005d1850
jmp 0x5d4118
cmp bl, 0x20
jne 0x5d418d
lea edx, [esp + 0x114]
push edx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
lea eax, [esp + 0xbc]
push eax
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0xbc]
sar edx, cl
mov ecx, esi
push edx
call fcn.005d1850
jmp 0x5d4118
cmp bl, 0x20
jne 0x5d378e
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
lea ecx, [esp + 0x30]
push ecx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov al, byte [esp + 0x13]
cmp al, 0x14
jne 0x5d3739
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
add eax, edx
push eax
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp al, 0x15
jne 0x5d3754
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
sub ecx, edx
push ecx
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp al, 0x16
jne 0x5d376e
mov edx, dword [esp + 0x30]
imul edx, dword [esp + 0x2c]
push edx
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x5d4186
mov eax, dword [esp + 0x30]
cdq
idiv ecx
mov ecx, esi
push eax
call fcn.005d1850
jmp 0x5d4118
cmp bl, 0x25
je 0x5d3ac6
cmp bl, 0x26
je 0x5d3acb
cmp bl, 0x21
je 0x5d3ac6
cmp bl, 0x23
jne 0x5d387f
lea ecx, [esp + 0x74]
call fcn.005b3190
lea eax, [esp + 0x74]
push eax
mov ecx, esi
mov dword [esp + 0x150], 2
call fcn.005d25e0
test eax, eax
je 0x5d416b
lea ecx, [esp + 0x80]
call fcn.005b3190
lea ecx, [esp + 0x80]
push ecx
mov ecx, esi
mov byte [esp + 0x150], 3
call fcn.005d25e0
test eax, eax
je 0x5d4157
cmp byte [esp + 0x13], 0x14
jne 0x5d3849
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x128]
push eax
lea ecx, [esp + 0x88]
call fcn.005e5d10
push eax
mov ecx, esi
mov byte [esp + 0x150], 4
call fcn.005d1930
lea ecx, [esp + 0x124]
mov byte [esp + 0x14c], 3
call fcn.005e5c20
mov eax, dword [ebp]
add eax, 2
lea ecx, [esp + 0x80]
mov dword [ebp], eax
mov byte [esp + 0x14c], 2
call fcn.005e5c20
lea ecx, [esp + 0x74]
mov dword [esp + 0x14c], 0xffffffff
call fcn.005e5c20
jmp 0x5d4121
cmp bl, 0x3a
jne 0x5d39a6
lea ecx, [esp + 0x5c]
push ecx
mov ecx, esi
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
call fcn.005d2560
test eax, eax
je 0x5d417f
lea edx, [esp + 0x68]
push edx
mov ecx, esi
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
call fcn.005d2560
test eax, eax
je 0x5d417f
mov al, byte [esp + 0x13]
cmp al, 0x14
jne 0x5d3943
fld dword [esp + 0x68]
sub esp, 0xc
fadd dword [esp + 0x68]
mov eax, esp
fstp dword [esp + 0x124]
mov ecx, dword [esp + 0x124]
fld dword [esp + 0x78]
mov dword [eax], ecx
fadd dword [esp + 0x6c]
fstp dword [esp + 0x128]
fld dword [esp + 0x7c]
mov edx, dword [esp + 0x128]
fadd dword [esp + 0x70]
mov dword [eax + 4], edx
fstp dword [esp + 0x12c]
mov ecx, dword [esp + 0x12c]
mov dword [eax + 8], ecx
mov ecx, esi
call fcn.005d18b0
jmp 0x5d4118
cmp al, 0x15
jne 0x5d4118
fld dword [esp + 0x68]
sub esp, 0xc
fsub dword [esp + 0x68]
mov edx, esp
fstp dword [esp + 0x108]
mov eax, dword [esp + 0x108]
fld dword [esp + 0x78]
mov dword [edx], eax
fsub dword [esp + 0x6c]
fstp dword [esp + 0x10c]
fld dword [esp + 0x7c]
mov ecx, dword [esp + 0x10c]
fsub dword [esp + 0x70]
mov dword [edx + 4], ecx
mov ecx, esi
fstp dword [esp + 0x110]
mov eax, dword [esp + 0x110]
mov dword [edx + 8], eax
call fcn.005d18b0
jmp 0x5d4118
cmp bl, 0x3b
je 0x5d39b4
cmp bl, 0x3c
jne 0x5d418d
cmp bl, 0x3b
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
jne 0x5d39ff
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
call fcn.005d2510
test eax, eax
je 0x5d417f
lea edx, [esp + 0x90]
push edx
mov ecx, esi
call fcn.005d2560
jmp 0x5d3a27
cmp bl, 0x3c
jne 0x5d3a33
lea eax, [esp + 0x90]
push eax
mov ecx, esi
call fcn.005d2560
test eax, eax
je 0x5d417f
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
call fcn.005d2510
test eax, eax
je 0x5d417f
mov dl, byte [esp + 0x13]
cmp dl, 0x16
jne 0x5d3a70
mov edx, dword [esp + 0x38]
push edx
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x134]
push ecx
call fcn.00423bf0
mov ecx, dword [eax]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, esi
mov dword [edx + 8], eax
call fcn.005d18b0
jmp 0x5d4118
cmp dl, 0x17
jne 0x5d4118
fld dword [esp + 0x38]
fcomp qword [0x73edf8]
fnstsw ax
test ah, 0x44
jnp 0x5d4186
mov ecx, dword [esp + 0x38]
push ecx
lea edx, [esp + 0x94]
push edx
lea eax, [esp + 0x140]
push eax
call fcn.00437a90
mov edx, dword [eax]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005d18b0
jmp 0x5d4118
cmp bl, 0x26
jne 0x5d3aef
lea ecx, [esp + 0xc4]
push ecx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
fild dword [esp + 0xc4]
fstp dword [esp + 0x20]
jmp 0x5d3b03
lea edx, [esp + 0x20]
push edx
mov ecx, esi
call fcn.005d2510
test eax, eax
je 0x5d417f
cmp bl, 0x25
jne 0x5d3b2c
lea eax, [esp + 0xf4]
push eax
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
fild dword [esp + 0xf4]
fstp dword [esp + 0x24]
jmp 0x5d3b40
lea ecx, [esp + 0x24]
push ecx
mov ecx, esi
call fcn.005d2510
test eax, eax
je 0x5d417f
mov al, byte [esp + 0x13]
cmp al, 0x14
jne 0x5d3b60
fld dword [esp + 0x24]
push ecx
fadd dword [esp + 0x24]
mov ecx, esi
fstp dword [esp]
call fcn.005d1880
jmp 0x5d4118
cmp al, 0x15
jne 0x5d3b7c
fld dword [esp + 0x24]
push ecx
fsub dword [esp + 0x24]
mov ecx, esi
fstp dword [esp]
call fcn.005d1880
jmp 0x5d4118
cmp al, 0x16
jne 0x5d3b98
fld dword [esp + 0x24]
push ecx
fmul dword [esp + 0x24]
mov ecx, esi
fstp dword [esp]
call fcn.005d1880
jmp 0x5d4118
fld dword [esp + 0x20]
fcomp qword [0x73edf8]
fnstsw ax
test ah, 0x44
jnp 0x5d4186
fld dword [esp + 0x24]
push ecx
fdiv dword [esp + 0x24]
mov ecx, esi
fstp dword [esp]
call fcn.005d1880
jmp 0x5d4118
cmp bl, 0x20
jne 0x5d418d
lea edx, [esp + 0x9c]
push edx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
lea eax, [esp + 0x10c]
push eax
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x5d4186
mov eax, dword [esp + 0x10c]
cdq
idiv ecx
mov ecx, esi
push edx
call fcn.005d1850
jmp 0x5d4118
cmp bl, 3
jne 0x5d3c54
lea ecx, [esp + 0xd4]
push ecx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov edx, dword [esp + 0xd4]
neg edx
push edx
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp bl, 4
jne 0x5d418d
lea eax, [esp + 0xe4]
push eax
mov ecx, esi
call fcn.005d2510
test eax, eax
je 0x5d417f
fld dword [esp + 0xe4]
push ecx
fchs
mov ecx, esi
fstp dword [esp]
call fcn.005d1880
jmp 0x5d4118
cmp bl, 3
jne 0x5d418d
lea ecx, [esp + 0xe0]
push ecx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov edx, dword [esp + 0xe0]
not edx
push edx
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
cmp bl, 3
jne 0x5d418d
lea eax, [esp + 0xa0]
push eax
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov ebx, dword [esp + 0xa0]
xor ecx, ecx
test ebx, ebx
sete cl
push ecx
mov ecx, esi
call fcn.005d1850
jmp 0x5d4118
movsx ebx, byte [eax + edi + 2]
xor edx, edx
mov dl, byte [eax + edi + 3]
shl ebx, 8
lea ecx, [esi + 0x1ac]
and edx, 0xff
add edx, ebx
xor ebx, ebx
mov bl, byte [eax + edi + 4]
movsx eax, byte [eax + edi + 5]
shl edx, 8
and eax, 0xff
neg eax
and ebx, 0xff
add edx, ebx
shl edx, 8
sub eax, edx
mov edx, dword [ecx]
sar eax, 2
sub edx, eax
push edx
call fcn.005d21f0
mov eax, dword [ebp]
add eax, 6
jmp 0x5d411e
movzx ecx, bl
add ecx, eax
xor eax, eax
mov dword [esi + 0x3c8], ecx
mov dword [esi + 0x3d0], eax
mov dword [esi + 0x3cc], eax
jmp 0x5d4118
movzx edx, bl
add edx, eax
mov dword [esi + 0x3c8], edx
mov eax, dword [ebp]
movsx edx, byte [eax + edi + 6]
add eax, edi
xor ecx, ecx
mov cl, byte [eax + 7]
shl edx, 8
movsx ebx, byte [eax + 2]
shl ebx, 8
and ecx, 0xff
add ecx, edx
xor edx, edx
mov dl, byte [eax + 8]
shl ecx, 8
and edx, 0xff
add ecx, edx
xor edx, edx
mov dl, byte [eax + 9]
shl ecx, 8
and edx, 0xff
add ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
and edx, 0xff
add edx, ebx
xor ebx, ebx
mov bl, byte [eax + 4]
movsx eax, byte [eax + 5]
shl edx, 8
and eax, 0xff
mov dword [esi + 0x3cc], ecx
and ebx, 0xff
add edx, ebx
shl edx, 8
add edx, eax
mov dword [esi + 0x3d0], edx
mov eax, dword [ebp]
add eax, 0xa
jmp 0x5d411e
lea eax, [esp + 0xa8]
push eax
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov eax, dword [esp + 0xa8]
test eax, eax
jne 0x5d40d4
mov eax, dword [ebp]
movsx edx, byte [eax + edi + 2]
xor ecx, ecx
mov cl, byte [eax + edi + 3]
shl edx, 8
and ecx, 0xff
add ecx, edx
xor edx, edx
mov dl, byte [eax + edi + 4]
shl ecx, 8
and edx, 0xff
add ecx, edx
xor edx, edx
mov dl, byte [eax + edi + 5]
shl ecx, 8
add eax, ecx
and edx, 0xff
add edx, eax
mov dword [ebp], edx
jmp 0x5d4121
lea eax, [esp + 0xb0]
push eax
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x5d40d4
mov eax, dword [ebp]
movsx edx, byte [eax + edi + 2]
xor ecx, ecx
mov cl, byte [eax + edi + 3]
shl edx, 8
and ecx, 0xff
add ecx, edx
xor edx, edx
mov dl, byte [eax + edi + 4]
shl ecx, 8
and edx, 0xff
add ecx, edx
xor edx, edx
mov dl, byte [eax + edi + 5]
shl ecx, 8
add eax, ecx
and edx, 0xff
add edx, eax
mov dword [ebp], edx
jmp 0x5d4121
movsx ecx, byte [eax + edi + 2]
xor ebx, ebx
mov bl, byte [eax + edi + 3]
shl ecx, 8
xor edx, edx
mov dl, byte [eax + edi + 4]
add eax, 6
push eax
and ebx, 0xff
add ebx, ecx
xor ecx, ecx
mov cl, byte [eax + edi - 1]
shl ebx, 8
and edx, 0xff
add ebx, edx
shl ebx, 8
mov dword [ebp], eax
and ecx, 0xff
add ebx, ecx
mov ecx, esi
call fcn.005d17f0
test eax, eax
je 0x5d4142
mov eax, dword [ebp]
add ebx, 0xfffffffa
add eax, ebx
jmp 0x5d411e
push ebp
mov ecx, esi
call fcn.005d17b0
test eax, eax
je 0x5d417f
jmp 0x5d4121
movzx cx, byte [eax + edi + 3]
xor edx, edx
mov dh, byte [eax + edi + 2]
xor ebx, ebx
mov bh, byte [eax + edi + 4]
xor dx, cx
movzx cx, byte [eax + edi + 5]
xor bx, cx
xor ecx, ecx
mov ch, byte [eax + edi + 6]
movzx ax, byte [eax + edi + 7]
sar bx, 2
sar dx, 2
movsx edx, dx
xor cx, ax
sar cx, 2
mov dword [esp + 0x54], ebx
mov eax, ecx
mov ecx, dword [esi + 0x1ac]
mov dword [esp + 0x1c], ecx
movsx ecx, ax
movsx eax, bx
lea ebx, [eax + ecx]
cmp ebx, edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
jge 0x5d3fcd
mov ebx, dword [esp + 0x18]
mov ecx, eax
mov eax, dword [esp + 0x1c]
sub ecx, edx
add ecx, ebx
add eax, ecx
push eax
lea ecx, [esi + 0x1ac]
mov dword [esp + 0x20], eax
call fcn.005d21f0
mov eax, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, eax
sub ebx, ecx
mov ecx, edx
sub ecx, eax
cmp ebx, ecx
mov dword [esp + 0x58], ecx
jge 0x5d3fff
mov edx, dword [esp + 0x14]
push ebx
add edx, ebx
push edx
lea ecx, [esi + 0x1ac]
call fcn.005d1c40
mov eax, dword [esp + 0x58]
inc ebx
cmp ebx, eax
jl 0x5d3fe3
cmp word [esp + 0x54], 0
jle 0x5d401f
mov eax, dword [esi + 0x1ac]
mov ebx, dword [esp + 0x14]
lea ecx, [esi + 0x1ac]
sub eax, ebx
push eax
call fcn.005d21f0
mov eax, dword [ebp]
add eax, 8
jmp 0x5d411e
cmp bl, 3
jne 0x5d40d4
movsx ebx, byte [eax + edi + 2]
xor ecx, ecx
mov cl, byte [eax + edi + 3]
shl ebx, 8
and ecx, 0xff
add ecx, ebx
xor ebx, ebx
mov bl, byte [eax + edi + 4]
movsx eax, byte [eax + edi + 5]
shl ecx, 8
and eax, 0xff
and ebx, 0xff
add ecx, ebx
shl ecx, 8
add eax, ecx
cmp dl, 0x24
je 0x5d4090
cmp dl, 0x23
je 0x5d4090
cmp dl, 0x29
je 0x5d407d
cmp dl, 0x28
jne 0x5d40a3
mov ecx, dword [esi + 0x1b0]
neg eax
sar eax, 2
sub ecx, eax
mov dword [esp + 0x40], ecx
jmp 0x5d40a7
mov ecx, dword [esi + 0x1ac]
neg eax
sar eax, 2
sub ecx, eax
mov dword [esp + 0x40], ecx
jmp 0x5d40a7
mov ecx, dword [esp + 0x40]
test ecx, ecx
jl 0x5d417f
cmp dl, 0x24
je 0x5d40c2
cmp dl, 0x29
je 0x5d40c2
mov ecx, dword [esp + 0x40]
push 0xffffffffffffffff
push ecx
jmp 0x5d40c9
mov edx, dword [esp + 0x40]
push 1
push edx
lea ecx, [esi + 0x1ac]
call fcn.005d16c0
mov eax, dword [ebp]
add eax, 6
jmp 0x5d411e
mov eax, dword [esi + 0x1b0]
mov ebx, dword [esi + 0x1ac]
push eax
mov ecx, esi
call fcn.005d1850
mov dword [esi + 0x1b0], ebx
jmp 0x5d4118
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.005d24c0
test eax, eax
je 0x5d417f
mov edx, dword [esp + 0xb8]
mov dword [esi + 0x1b0], edx
mov eax, dword [ebp]
add eax, 2
mov dword [ebp], eax
cmp dword [ebp], 0xffffffff
jne 0x5d2c10
xor eax, eax
jmp 0x5d4199
mov eax, 0xffffff95
jmp 0x5d4199
mov eax, 0xffffffa3
jmp 0x5d4199
call fcn.005e5c20
mov eax, 0xffffff9d
jmp 0x5d4199
mov eax, 0xffffff94
jmp 0x5d4199
mov eax, 0xffffff93
jmp 0x5d4199
lea ecx, [esp + 0x80]
mov byte [esp + 0x14c], 2
call fcn.005e5c20
lea ecx, [esp + 0x74]
mov dword [esp + 0x14c], 0xffffffff
call fcn.005e5c20
mov eax, 0xffffff9c
jmp 0x5d4199
mov eax, 0xffffff97
jmp 0x5d4199
mov eax, 0xffffff9f
jmp 0x5d4199
mov eax, 0xffffff9b
mov ecx, dword [esp + 0x144]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x140
ret 0xc