Function at 0x5d3be0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x14c]
cmp eax, dword [ecx + 8]
jbe 0x5d545f
sub esp, 0x1cc
mov eax, 0
lea edi, [esp + 0x12c]
call fcn.0044b5c1
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
lea eax, [0x62e300]
mov dword [esp], eax
call fcn.00409aa0
mov eax, dword [esp + 4]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x1d4]
mov dword [esp], ecx
mov edx, dword [esp + 0x1d8]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x2e
mov dword [esp + 0x10], 0x2e
call fcn.004510b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x5d537a
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], 0x2e
mov dword [esp + 0xc4], 0x2e
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax]
mov dword [esp + 0xc0], 0x2a
mov dword [esp + 0xc4], 0x2a
lea edx, [eax + 4]
mov dword [esp + 0xbc], edx
cmp ecx, 0x2014b50
jne 0x5d5359
movzx ecx, word [eax + 4]
mov dword [esp + 0xc0], 0x28
mov dword [esp + 0xc4], 0x28
add eax, 6
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x1d0]
mov word [eax + 0x12], cx
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xbc]
cmp edx, 1
jbe 0x5d5458
add edx, 0xfffffffe
movzx ebp, word [ebx]
mov dword [esp + 0xc0], edx
add ecx, 0xfffffffe
mov dword [esp + 0xc4], ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, ebx
mov dword [esp + 0xbc], ecx
mov word [eax + 0x14], bp
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xbc]
cmp edx, 1
jbe 0x5d5451
add edx, 0xfffffffe
movzx ebp, word [ebx]
mov dword [esp + 0xc0], edx
add ecx, 0xfffffffe
mov dword [esp + 0xc4], ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, ebx
mov dword [esp + 0xbc], ecx
mov word [eax + 0x16], bp
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xbc]
cmp edx, 1
jbe 0x5d544a
add edx, 0xfffffffe
movzx ebp, word [ebx]
mov dword [esp + 0xc0], edx
add ecx, 0xfffffffe
mov dword [esp + 0xc4], ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, ebx
mov dword [esp + 0xbc], ecx
mov word [eax + 0x18], bp
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xbc]
cmp edx, 1
jbe 0x5d5443
add edx, 0xfffffffe
movzx ebp, word [ebx]
mov dword [esp + 0xc0], edx
add ecx, 0xfffffffe
mov dword [esp + 0xc4], ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, ebx
mov dword [esp + 0xbc], ecx
mov word [eax + 0x30], bp
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xbc]
cmp edx, 1
jbe 0x5d543c
add edx, 0xfffffffe
movzx ebp, word [ebx]
mov dword [esp + 0xc0], edx
add ecx, 0xfffffffe
mov dword [esp + 0xc4], ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, ebx
mov dword [esp + 0xbc], ecx
mov word [eax + 0x32], bp
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xbc]
cmp edx, 3
jbe 0x5d5435
mov dword [esp + 0x60], ecx
lea ebp, [edx - 4]
mov esi, dword [ebx]
mov dword [esp + 0xc0], ebp
lea edi, [ecx - 4]
mov dword [esp + 0xc4], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 4
lea ecx, [edi + ebx]
mov dword [esp + 0xbc], ecx
mov dword [eax + 0x34], esi
cmp ebp, 3
jbe 0x5d542e
lea ebp, [edx - 8]
mov ebx, dword [ebx + edi]
mov dword [esp + 0xc0], ebp
mov esi, dword [esp + 0x60]
lea edi, [esi - 8]
mov dword [esp + 0xc4], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 4
lea esi, [ecx + edi]
mov dword [esp + 0xbc], esi
mov dword [eax + 0x38], ebx
cmp ebp, 3
jbe 0x5d5427
add edx, 0xfffffff4
mov ecx, dword [ecx + edi]
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x60]
add edx, 0xfffffff4
mov dword [esp + 0xc4], edx
neg edx
sar edx, 0x1f
and edx, 4
add edx, esi
mov dword [esp + 0xbc], edx
mov dword [eax + 0x3c], ecx
mov edx, dword [eax + 0x38]
mov dword [eax + 0x40], edx
mov dword [eax + 0x44], 0
mov dword [eax + 0x48], ecx
mov dword [eax + 0x4c], 0
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xc4]
cmp ecx, 1
jbe 0x5d5420
movzx ebp, word [edx]
mov dword [esp + 0x8c], ebp
lea esi, [ecx - 2]
mov dword [esp + 0xc0], esi
lea edi, [ebx - 2]
mov dword [esp + 0xc4], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
lea ebp, [edx + edi]
mov dword [esp + 0xbc], ebp
cmp esi, 1
jbe 0x5d5419
movzx edx, word [edx + edi]
mov dword [esp + 0x88], edx
lea esi, [ecx - 4]
mov dword [esp + 0xc0], esi
lea edi, [ebx - 4]
mov dword [esp + 0xc4], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
lea edx, [edi + ebp]
mov dword [esp + 0xbc], edx
cmp esi, 1
jbe 0x5d5412
movzx ebp, word [edi + ebp]
lea esi, [ecx - 6]
mov dword [esp + 0xc0], esi
lea edi, [ebx - 6]
mov dword [esp + 0xc4], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
add edx, edi
mov dword [esp + 0xbc], edx
cmp esi, 4
jb 0x5d540b
mov dword [esp + 0x84], ebp
lea esi, [ebx - 0xa]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
lea ebp, [esi + edx]
mov dword [esp + 0xbc], ebp
lea eax, [ecx - 0xa]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edi
cmp eax, 3
jbe 0x5d5404
lea eax, [ecx - 0xe]
mov edx, dword [edx + esi]
mov dword [esp + 0xc0], eax
lea esi, [ebx - 0xe]
mov dword [esp + 0xc4], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
lea edi, [ebp + esi]
mov dword [esp + 0x9c], edi
mov dword [esp + 0xbc], edi
mov edi, dword [esp + 0x1d0]
mov dword [edi + 0x5c], edx
cmp eax, 3
jbe 0x5d53fd
lea eax, [ecx - 0x12]
mov ecx, dword [ebp + esi]
mov dword [esp + 0xc0], eax
lea eax, [ebx - 0x12]
mov dword [esp + 0xc4], eax
neg eax
sar eax, 0x1f
and eax, 4
mov edx, dword [esp + 0x9c]
add eax, edx
mov dword [esp + 0xbc], eax
mov dword [edi + 0x74], ecx
mov dword [edi + 0x78], 0
lea eax, [0x635480]
mov dword [esp], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
lea edx, [ecx + eax]
mov dword [esp + 0x80], edx
mov ebx, dword [esp + 0x84]
add ebx, edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00437b60
mov eax, dword [esp + 0x14]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x94], edx
mov ebx, dword [esp + 0x1d4]
mov dword [esp], ebx
mov ebx, dword [esp + 0x1d8]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.004510b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x5d5344
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x5c]
cmp eax, ecx
ja 0x5d53f6
mov dword [esp], 0
mov edx, dword [esp + 0x94]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0043aff0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x1d0]
mov dword [edi + 4], ecx
mov ecx, dword [0x881b80]
test ecx, ecx
jne 0x5d533a
mov dword [edi], eax
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x80]
cmp ecx, edx
ja 0x5d53ef
mov ebx, dword [esp + 0x5c]
cmp edx, ebx
ja 0x5d53ef
mov ebp, dword [esp + 0x88]
mov dword [edi + 0x54], ebp
mov ebp, ebx
sub ebx, ecx
mov dword [edi + 0x58], ebx
mov esi, dword [0x881b80]
neg ebx
sar ebx, 0x1f
and ecx, ebx
mov ebx, dword [esp + 0x94]
lea eax, [ebx + ecx]
test esi, esi
jne 0x5d5327
mov dword [edi + 0x50], eax
mov eax, dword [esp + 0x58]
cmp edx, eax
ja 0x5d53e8
mov dword [esp], 0
sub ebp, edx
mov ecx, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, edx
add ebx, ebp
mov dword [esp + 4], ebx
sub eax, edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0043aff0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1d0]
mov dword [edx + 0xc], ecx
mov ecx, dword [0x881b80]
test ecx, ecx
jne 0x5d531a
mov dword [edx + 8], eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.005d8e10
movzx eax, byte [esp + 8]
mov byte [esp + 0x35], al
movzx ecx, byte [esp + 9]
mov byte [esp + 0x36], cl
mov edx, dword [esp + 0x1d0]
mov ebx, dword [edx + 8]
mov ebp, dword [edx + 0xc]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.005d8e10
movzx eax, byte [esp + 8]
movzx ecx, byte [esp + 9]
movzx edx, byte [esp + 0x35]
test dl, dl
je 0x5d530a
test al, al
je 0x5d530a
movzx edx, byte [esp + 0x36]
test dl, dl
je 0x5d52f2
mov ecx, dword [esp + 0x1d0]
movzx edx, word [ecx + 0x16]
test dx, 0x800
sete dl
mov byte [ecx + 0x10], dl
mov edx, dword [ecx + 0x3c]
mov ebx, dword [ecx + 0x38]
mov ebp, dword [ecx + 0x74]
mov dword [esp + 0x7c], ebp
mov esi, dword [ecx + 0x78]
lea edi, [esp + 0x17c]
xor eax, eax
call fcn.0044b5cb
mov ecx, dword [esp + 0x1d0]
mov edi, esi
mov esi, dword [ecx + 0x50]
mov ebp, dword [ecx + 0x54]
mov ecx, dword [ecx + 0x58]
mov dword [esp + 0xb0], esi
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xb8], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x98], ecx
cmp edx, 0xffffffff
sete dl
cmp ebx, 0xffffffff
sete bl
mov ebp, dword [esp + 0x7c]
cmp ebp, 0xffffffff
xchg ebp, ebx
sete bl
xchg ebp, ebx
test edi, edi
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, ebp
jmp 0x5d436c
mov edx, ecx
mov esi, ebx
mov ebx, ebp
mov ecx, edi
xchg esi, eax
mov byte [esp + 0x38], al
xchg esi, eax
mov byte [esp + 0x39], bl
mov ebp, dword [esp + 0xb4]
mov edi, ecx
mov ecx, dword [esp + 0xb8]
mov esi, dword [esp + 0xb0]
cmp ebp, 4
jl 0x5d4f15
mov byte [esp + 0x37], dl
lea ebx, [ebp - 2]
movzx edx, word [esi]
mov word [esp + 0x3a], dx
mov dword [esp + 0xb4], ebx
lea edx, [ecx - 2]
mov dword [esp + 0xb8], edx
lea edx, [esi + 2]
mov dword [esp + 0xb0], edx
cmp ebx, 1
jbe 0x5d53e1
mov dword [esp + 0x8c], ecx
movzx edx, word [esi + 2]
lea ebx, [ebp - 4]
mov dword [esp + 0xb4], ebx
lea ebp, [ecx - 4]
mov dword [esp + 0x88], ebp
mov dword [esp + 0xb8], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 2
lea ecx, [esi + ebp + 2]
mov dword [esp + 0xb0], ecx
cmp ebx, edx
jl 0x5d4f15
mov dword [esp + 0x84], ebp
mov ebp, dword [esp + 0x88]
cmp edx, ebp
ja 0x5d53da
cmp edx, ebx
ja 0x5d53d3
sub ebx, edx
mov dword [esp + 0xb4], ebx
mov ebx, ebp
sub ebp, edx
mov dword [esp + 0xb8], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, edx
add ebp, ecx
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], ebx
movzx ebx, word [esp + 0x3a]
cmp bx, 0xa
ja 0x5d4cd5
cmp bx, 1
jne 0x5d47ae
movzx ebx, byte [esp + 0x37]
test bl, bl
je 0x5d47a2
cmp edx, 8
jl 0x5d4781
add edx, 0xfffffff8
mov ebx, dword [esp + 0x84]
movzx ebp, byte [esi + ebx + 5]
mov dword [esp + 0x7c], ebp
movzx ebp, byte [esi + ebx + 4]
mov dword [esp + 0x78], ebp
movzx ebp, byte [esi + ebx + 3]
mov dword [esp + 0x74], ebp
movzx ebp, byte [esi + ebx + 2]
mov dword [esp + 0x70], ebp
movzx ebp, byte [esi + ebx + 9]
mov dword [esp + 0x6c], ebp
movzx ebp, byte [esi + ebx + 8]
mov dword [esp + 0x68], ebp
movzx ebp, byte [esi + ebx + 7]
movzx ebx, byte [esi + ebx + 6]
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x8c]
add edx, 0xfffffff4
mov dword [esp + 0xac], edx
neg edx
sar edx, 0x1f
and edx, 8
add ecx, edx
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x74]
mov edx, ecx
shl ecx, 8
mov esi, dword [esp + 0x70]
or esi, ecx
mov ecx, dword [esp + 0x78]
shl ecx, 0x10
or esi, ecx
mov ecx, dword [esp + 0x7c]
shl ecx, 0x18
or esi, ecx
mov ecx, dword [esp + 0x1d0]
mov dword [ecx + 0x48], esi
mov esi, dword [esp + 0x78]
shr esi, 0x10
shr edx, 0x18
or edx, esi
mov esi, dword [esp + 0x7c]
shr esi, 8
or edx, esi
or ebx, edx
shl ebp, 8
or ebx, ebp
mov edx, dword [esp + 0x68]
shl edx, 0x10
or ebx, edx
mov edx, dword [esp + 0x6c]
shl edx, 0x18
or ebx, edx
mov dword [ecx + 0x4c], ebx
movzx edx, byte [esp + 0x39]
test dl, dl
je 0x5d477a
mov edx, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
cmp ebx, 8
jl 0x5d4759
add ebx, 0xfffffff8
movzx esi, byte [edx + 3]
mov dword [esp + 0x7c], esi
movzx ecx, byte [edx + 2]
mov dword [esp + 0x78], ecx
movzx esi, byte [edx + 1]
movzx ecx, byte [edx]
mov dword [esp + 0x74], ecx
movzx ecx, byte [edx + 4]
mov dword [esp + 0x70], ecx
movzx ecx, byte [edx + 7]
mov dword [esp + 0x6c], ecx
movzx ecx, byte [edx + 6]
mov dword [esp + 0x68], ecx
movzx ecx, byte [edx + 5]
mov dword [esp + 0xa8], ebx
lea ebx, [ebp - 8]
mov dword [esp + 0xac], ebx
neg ebx
sar ebx, 0x1f
and ebx, 8
add edx, ebx
mov dword [esp + 0xa4], edx
mov edx, esi
shl esi, 8
mov ebx, dword [esp + 0x74]
or esi, ebx
mov ebx, dword [esp + 0x78]
mov ebp, ebx
shl ebx, 0x10
or ebx, esi
mov esi, dword [esp + 0x7c]
shl esi, 0x18
or ebx, esi
mov esi, dword [esp + 0x1d0]
mov dword [esi + 0x40], ebx
shr ebp, 0x10
shr edx, 0x18
or edx, ebp
mov ebx, dword [esp + 0x7c]
shr ebx, 8
or edx, ebx
mov ebx, dword [esp + 0x70]
or ebx, edx
shl ecx, 8
or ebx, ecx
mov ecx, dword [esp + 0x68]
shl ecx, 0x10
or ecx, ebx
mov edx, dword [esp + 0x6c]
shl edx, 0x18
or ecx, edx
mov dword [esi + 0x44], ecx
movzx ecx, byte [esp + 0x38]
test cl, cl
je 0x5d4755
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
mov ebx, dword [esp + 0xac]
cmp ecx, 8
jl 0x5d4734
add ecx, 0xfffffff8
movzx ebp, byte [edx + 3]
mov dword [esp + 0x7c], ebp
movzx esi, byte [edx + 2]
mov dword [esp + 0x78], esi
movzx ebp, byte [edx + 1]
movzx esi, byte [edx]
mov dword [esp + 0x74], esi
movzx esi, byte [edx + 7]
mov dword [esp + 0x70], esi
movzx esi, byte [edx + 6]
mov dword [esp + 0x6c], esi
movzx esi, byte [edx + 5]
mov dword [esp + 0x68], esi
movzx esi, byte [edx + 4]
mov dword [esp + 0xa8], ecx
lea ecx, [ebx - 8]
mov dword [esp + 0xac], ecx
neg ecx
sar ecx, 0x1f
and ecx, 8
add ecx, edx
mov dword [esp + 0xa4], ecx
mov ecx, ebp
shl ebp, 8
mov edx, dword [esp + 0x74]
or edx, ebp
mov ebx, dword [esp + 0x78]
mov ebp, ebx
shl ebx, 0x10
or ebx, edx
mov edx, dword [esp + 0x7c]
shl edx, 0x18
or ebx, edx
mov edx, dword [esp + 0x1d0]
mov dword [edx + 0x74], ebx
shr ebp, 0x10
shr ecx, 0x18
or ecx, ebp
mov ebx, dword [esp + 0x7c]
shr ebx, 8
or ecx, ebx
or esi, ecx
mov ecx, dword [esp + 0x68]
shl ecx, 8
or esi, ecx
mov ecx, dword [esp + 0x6c]
shl ecx, 0x10
or ecx, esi
mov ebx, dword [esp + 0x70]
shl ebx, 0x18
or ecx, ebx
mov dword [edx + 0x78], ecx
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
jmp 0x5d4364
mov eax, dword [0x86fba8]
mov ecx, dword [0x86fbac]
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e0], ecx
add esp, 0x1cc
ret
mov edx, esi
jmp 0x5d4729
mov eax, dword [0x86fba8]
mov ecx, dword [0x86fbac]
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e0], ecx
add esp, 0x1cc
ret
mov esi, ecx
jmp 0x5d4648
mov eax, dword [0x86fba8]
mov ecx, dword [0x86fbac]
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e0], ecx
add esp, 0x1cc
ret
mov ecx, dword [esp + 0x1d0]
jmp 0x5d4567
cmp bx, 0xa
jne 0x5d4cba
cmp edx, 4
jge 0x5d47d8
mov edx, dword [esp + 0x1d0]
movzx ecx, byte [esp + 0x37]
movzx ebx, byte [esp + 0x38]
movzx ebp, byte [esp + 0x39]
jmp 0x5d4364
add edx, 0xfffffffc
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x8c]
add edx, 0xfffffff8
mov dword [esp + 0xac], edx
neg edx
sar edx, 0x1f
and edx, 4
add ecx, edx
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0xac]
cmp edx, 4
jl 0x5d4c9f
lea ebp, [edx - 2]
movzx esi, word [ecx]
mov word [esp + 0x3a], si
mov dword [esp + 0xa8], ebp
lea esi, [ebx - 2]
mov dword [esp + 0xac], esi
lea esi, [ecx + 2]
mov dword [esp + 0xa4], esi
cmp ebp, 1
jbe 0x5d53cc
mov dword [esp + 0x9c], ecx
movzx ebp, word [ecx + 2]
add edx, 0xfffffffc
mov dword [esp + 0xa8], edx
add ebx, 0xfffffffc
mov dword [esp + 0xac], ebx
mov esi, ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
lea ecx, [ebx + ecx + 2]
mov dword [esp + 0xa4], ecx
cmp edx, ebp
jl 0x5d4c84
cmp ebp, esi
ja 0x5d53c5
cmp ebp, edx
ja 0x5d53be
sub edx, ebp
mov dword [esp + 0xa8], edx
sub esi, ebp
mov dword [esp + 0xac], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebp
add ecx, esi
mov dword [esp + 0xa4], ecx
movzx ecx, word [esp + 0x3a]
cmp cx, 1
jne 0x5d4804
cmp ebp, 0x18
jne 0x5d4804
cmp ebp, 7
jbe 0x5d53b7
mov eax, dword [esp + 0x9c]
movzx ecx, byte [eax + ebx + 5]
movzx edx, byte [eax + ebx + 4]
movzx ebp, byte [eax + ebx + 3]
movzx esi, byte [eax + ebx + 2]
mov edi, ebp
shl ebp, 8
or esi, ebp
mov ebp, edx
shl edx, 0x10
or esi, edx
mov edx, ecx
shl ecx, 0x18
or esi, ecx
mov dword [esp + 0x7c], esi
movzx ecx, byte [eax + ebx + 9]
mov dword [esp + 0x78], ecx
movzx ecx, byte [eax + ebx + 8]
mov dword [esp + 0x74], ecx
movzx ecx, byte [eax + ebx + 7]
movzx eax, byte [eax + ebx + 6]
mov dword [esp], esi
shr ebp, 0x10
shr edi, 0x18
or edi, ebp
shr edx, 8
or edi, edx
or eax, edi
shl ecx, 8
or eax, ecx
mov ecx, dword [esp + 0x74]
shl ecx, 0x10
or eax, ecx
mov ecx, dword [esp + 0x78]
shl ecx, 0x18
or eax, ecx
mov dword [esp + 0x78], eax
mov dword [esp + 4], eax
mov dword [esp + 8], 0x989680
mov dword [esp + 0xc], 0
call fcn.00447120
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x989680
mov dword [esp + 0xc], 0
call fcn.00447270
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, 0x64
mul ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x64], ecx
mov dword [esp], 0x641
mov dword [esp + 4], 1
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov ebx, dword [0x86a8cc]
mov dword [esp + 0x1c], ebx
call fcn.0047bd90
lea edi, [esp + 0x190]
mov esi, dword [esp + 0x98]
call fcn.0044baae
lea edi, [esp + 0x140]
lea esi, [esp + 0x190]
call fcn.0044baae
mov eax, dword [esp + 0x64]
imul eax, eax, 0x64
mov ecx, dword [esp + 0x7c]
add eax, ecx
mov ecx, dword [esp + 0x144]
mov edx, dword [esp + 0x140]
mov ebx, ecx
shr ecx, 0x1f
shl ecx, 0x1f
test ecx, ecx
je 0x5d4c71
mov ecx, edx
shr edx, 0x1f
shl ebx, 1
or ebx, edx
mov edx, ebx
shl ebx, 1
shl ecx, 1
shr ecx, 0x1f
or ecx, ebx
mov ebx, ecx
add ecx, 0xd7b17f80
shr edx, 0x1f
add ebx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0x40]
mov ebp, ebx
add ebx, ecx
mov esi, ebx
add ebx, 0x886e0900
lea edi, [esp + 0xf0]
xor eax, eax
call fcn.0044b5cb
mov ecx, dword [esp + 0x3c]
add ebp, ecx
mov ecx, dword [esp + 0x44]
adc edx, ecx
mov ecx, esi
add esi, 0x886e0900
mov ebp, edx
adc edx, 0xfffffff1
mov dword [esp + 0x4c], edx
mov esi, ebp
mov ebp, dword [esp + 0x7c]
test ebp, ebp
mov edi, ecx
sete cl
mov edx, dword [esp + 0x54]
cmp edx, 0x3b9aca00
setae dl
and ecx, edx
test ebp, ebp
seta dl
or ecx, edx
test cl, cl
jne 0x5d4bb5
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], ecx
mov ebp, ebx
add ebx, 0x7791f700
lea edi, [esp + 0xdc]
call fcn.0044b5cb
lea edi, [esp + 0x1b8]
call fcn.0044b5cb
mov dword [esp + 0x1b8], edx
sar edx, 0x1f
mov dword [esp + 0x1bc], edx
mov dword [esp + 0x1c0], ebx
add ebp, 0x7791f700
mov ecx, dword [esp + 0x50]
adc ecx, 0xe
mov dword [esp + 0x1c4], ecx
mov ecx, dword [0x86a8c8]
mov dword [esp + 0x1c8], ecx
lea edi, [esp + 0xdc]
lea esi, [esp + 0x1b8]
call fcn.0044baae
lea edi, [esp + 0x1a4]
lea esi, [esp + 0xdc]
call fcn.0044baae
lea edi, [esp + 0xf0]
lea esi, [esp + 0x1a4]
call fcn.0044baae
lea edi, [esp + 0x17c]
lea esi, [esp + 0xf0]
call fcn.0044baae
mov edi, dword [esp + 0x98]
jmp 0x5d4804
mov dword [esp + 0x78], edi
mov dword [esp + 0x64], esi
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.00447120
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
mov edx, eax
add eax, ecx
mov ebx, eax
add eax, 0x886e0900
mov dword [esp + 0x48], eax
mov eax, edx
mov esi, 0x3b9aca00
mov edi, eax
mul esi
mov esi, dword [esp + 0x54]
sub esi, eax
mov ebp, dword [esp + 0x14]
add edi, ecx
mov ecx, dword [esp + 0x64]
adc ecx, ebp
mov edi, ebx
add ebx, 0x886e0900
mov ebx, ecx
adc ecx, 0xfffffff1
imul ebp, ebp, 0x3b9aca00
add edx, ebp
mov ebp, dword [esp + 0x54]
sub ebp, eax
mov eax, dword [esp + 0x7c]
sbb eax, edx
test esi, esi
setb dl
test eax, eax
xchg ebp, ebx
sete bl
xchg ebp, ebx
and edx, ebp
test eax, eax
setl al
or edx, eax
test dl, dl
je 0x5d4c69
add esi, 0x3b9aca00
add edi, 0x886e08ff
adc ebx, 0xfffffff1
xor eax, eax
mov ecx, ebx
mov edx, esi
mov ebx, edi
jmp 0x5d4b00
mov edi, dword [esp + 0x48]
mov ebx, ecx
jmp 0x5d4c5c
mov edx, dword [esp + 0x14c]
mov ecx, dword [esp + 0x148]
jmp 0x5d4a8a
mov edx, dword [esp + 0x1d0]
movzx ecx, byte [esp + 0x37]
movzx ebx, byte [esp + 0x38]
movzx ebp, byte [esp + 0x39]
jmp 0x5d4364
mov edx, dword [esp + 0x1d0]
movzx ecx, byte [esp + 0x37]
movzx ebx, byte [esp + 0x38]
movzx ebp, byte [esp + 0x39]
jmp 0x5d4364
mov edx, dword [esp + 0x1d0]
movzx ecx, byte [esp + 0x37]
movzx ebx, byte [esp + 0x38]
movzx ebp, byte [esp + 0x39]
jmp 0x5d4364
cmp bx, 0xd
jne 0x5d4ddd
cmp edx, 8
jge 0x5d4cff
mov edx, dword [esp + 0x1d0]
movzx ecx, byte [esp + 0x37]
movzx ebx, byte [esp + 0x38]
movzx ebp, byte [esp + 0x39]
jmp 0x5d4364
lea ebx, [edx - 4]
mov dword [esp + 0xa8], ebx
mov ebp, dword [esp + 0x8c]
lea esi, [ebp - 8]
mov dword [esp + 0xac], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
lea ebp, [ecx + esi]
mov dword [esp + 0xa4], ebp
cmp ebx, 3
jbe 0x5d53b0
mov ecx, dword [ecx + esi]
mov esi, ecx
add ecx, 0x7791f700
mov dword [esp + 0x7c], ecx
mov ebx, esi
lea esi, [edx - 8]
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0x8c]
add esi, 0xfffffff4
mov dword [esp + 0xac], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
add esi, ebp
mov dword [esp + 0xa4], esi
mov esi, dword [0x86a8c8]
lea edi, [esp + 0x17c]
call fcn.0044b5cb
mov dword [esp + 0x180], 0
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x184], ecx
add ebx, 0x7791f700
adc eax, 0xe
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], esi
xor eax, eax
mov edx, dword [esp + 0x1d0]
mov edi, dword [esp + 0x98]
movzx ecx, byte [esp + 0x37]
movzx ebx, byte [esp + 0x38]
movzx ebp, byte [esp + 0x39]
jmp 0x5d4364
cmp bx, 0x5455
jne 0x5d4f05
cmp edx, 5
jge 0x5d4e08
mov edx, dword [esp + 0x1d0]
movzx ecx, byte [esp + 0x37]
movzx ebx, byte [esp + 0x38]
movzx ebp, byte [esp + 0x39]
jmp 0x5d4364
mov dword [esp + 0x88], edx
mov ebx, dword [esp + 0x84]
movzx ebx, byte [esi + ebx + 2]
lea ebp, [edx - 1]
mov dword [esp + 0xa8], ebp
mov esi, dword [esp + 0x8c]
add esi, 0xfffffffb
mov dword [esp + 0xac], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
lea edx, [esi + ecx]
mov dword [esp + 0xa4], edx
test bl, 1
je 0x5d4ded
cmp ebp, 3
jbe 0x5d53a9
mov ecx, dword [esi + ecx]
mov esi, ecx
add ecx, 0x7791f700
mov dword [esp + 0x7c], ecx
mov ebx, esi
mov esi, dword [esp + 0x88]
add esi, 0xfffffffb
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0x8c]
add esi, 0xfffffff7
mov dword [esp + 0xac], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
add esi, edx
mov dword [esp + 0xa4], esi
mov esi, dword [0x86a8c8]
lea edi, [esp + 0x17c]
call fcn.0044b5cb
mov dword [esp + 0x180], 0
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x184], ecx
add ebx, 0x7791f700
adc eax, 0xe
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], esi
xor eax, eax
mov edx, dword [esp + 0x1d0]
mov edi, dword [esp + 0x98]
movzx ecx, byte [esp + 0x37]
movzx ebx, byte [esp + 0x38]
movzx ebp, byte [esp + 0x39]
jmp 0x5d4364
cmp bx, 0x5855
je 0x5d4cdf
jmp 0x5d4cba
mov eax, dword [esp + 0x1d0]
movzx ecx, word [eax + 0x32]
movzx edx, word [eax + 0x30]
mov word [esp + 2], dx
mov word [esp], cx
call fcn.005d71b0
lea esi, [esp + 4]
lea edi, [esp + 0x168]
call fcn.0044baae
mov eax, dword [esp + 0x1d0]
lea edi, [eax + 0x1c]
mov dword [esp + 0x98], edi
mov ecx, dword [0x881b80]
test ecx, ecx
jne 0x5d52c9
lea esi, [esp + 0x168]
call fcn.0044baae
lea edi, [esp + 0x118]
lea esi, [esp + 0x17c]
call fcn.0044baae
mov ecx, dword [esp + 0x11c]
mov edx, ecx
shr ecx, 0x1f
shl ecx, 0x1f
mov ebx, dword [esp + 0x118]
test ecx, ecx
je 0x5d52b2
mov ecx, ebx
shr ebx, 0x1f
shl edx, 1
or edx, ebx
mov ebx, edx
shl edx, 1
mov ebp, ecx
shl ecx, 1
shr ecx, 0x1f
or ecx, edx
mov edx, ecx
add ecx, 0xd7b17f80
shr ebx, 0x1f
add edx, 0xd7b17f80
adc ebx, 0xd
test ecx, ecx
sete cl
test ebx, ebx
sete dl
and edx, ecx
test dl, dl
je 0x5d52ab
test ebp, 0x3fffffff
sete cl
test cl, cl
je 0x5d5039
movzx eax, byte [esp + 0x39]
test al, al
je 0x5d5013
mov eax, dword [0x86fba8]
mov ecx, dword [0x86fbac]
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e0], ecx
add esp, 0x1cc
ret
movzx eax, byte [esp + 0x38]
test al, al
jne 0x5d4ff2
mov dword [esp + 0x1dc], 0
mov dword [esp + 0x1e0], 0
add esp, 0x1cc
ret
lea edi, [esp + 0x154]
lea esi, [esp + 0x17c]
call fcn.0044baae
lea edi, [esp + 0xc8]
xor eax, eax
call fcn.0044b5cb
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x158]
mov ebx, edx
shr edx, 0x1f
shl edx, 0x1f
test edx, edx
je 0x5d50c9
mov edx, ecx
shr ecx, 0x1f
shl ebx, 1
or ebx, ecx
mov ecx, ebx
shl ebx, 1
shl edx, 1
shr edx, 0x1f
or edx, ebx
mov ebx, edx
add edx, 0xd7b17f80
mov dword [esp + 0x15c], edx
shr ecx, 0x1f
add ebx, 0xd7b17f80
adc ecx, 0xd
mov dword [esp + 0x160], ecx
mov ecx, dword [esp + 0x154]
and ecx, 0x3fffffff
mov dword [esp + 0x154], ecx
mov dword [esp + 0x158], 0
mov dword [esp + 0x164], 0
lea edi, [esp + 0xc8]
lea esi, [esp + 0x154]
call fcn.0044baae
mov ecx, dword [0x881b80]
test ecx, ecx
jne 0x5d5280
mov edi, dword [esp + 0x98]
lea esi, [esp + 0xc8]
call fcn.0044baae
mov ecx, dword [esp + 0x1d0]
movzx edx, word [ecx + 0x30]
test dx, dx
je 0x5d526e
lea edi, [esp + 0x12c]
lea esi, [esp + 0x17c]
call fcn.0044baae
mov edi, esp
lea esi, [esp + 0x168]
call fcn.0044baae
lea edi, [esp + 0x14]
lea esi, [esp + 0x17c]
call fcn.0044baae
call fcn.0047b010
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.005d6fa0
mov eax, dword [esp + 8]
mov dword [esp + 0x90], eax
lea edi, [esp + 0x104]
xor eax, eax
call fcn.0044b5cb
mov eax, dword [esp + 0x90]
test eax, eax
je 0x5d538f
lea ecx, [0x86d780]
cmp eax, ecx
jne 0x5d519a
xor eax, eax
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x130]
mov ebx, edx
shr edx, 0x1f
shl edx, 0x1f
test edx, edx
je 0x5d5209
mov edx, ecx
shr ecx, 0x1f
shl ebx, 1
or ebx, ecx
mov ecx, ebx
shl ebx, 1
shl edx, 1
shr edx, 0x1f
or edx, ebx
mov ebx, edx
add edx, 0xd7b17f80
mov dword [esp + 0x134], edx
shr ecx, 0x1f
add ebx, 0xd7b17f80
adc ecx, 0xd
mov dword [esp + 0x138], ecx
mov ecx, dword [esp + 0x12c]
and ecx, 0x3fffffff
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x130], 0
mov dword [esp + 0x13c], eax
lea edi, [esp + 0x104]
lea esi, [esp + 0x12c]
call fcn.0044baae
mov eax, dword [0x881b80]
test eax, eax
jne 0x5d5245
mov edi, dword [esp + 0x98]
lea esi, [esp + 0x104]
call fcn.0044baae
jmp 0x5d4fe9
lea eax, [0x678e60]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
lea eax, [esp + 0x104]
mov dword [esp + 8], eax
call fcn.0040ed40
jmp 0x5d4fe9
movzx ecx, word [ecx + 0x32]
test cx, cx
jne 0x5d511c
jmp 0x5d4fe9
lea eax, [0x678e60]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
lea ecx, [esp + 0xc8]
mov dword [esp + 8], ecx
call fcn.0040ed40
xor eax, eax
jmp 0x5d5108
xor ecx, ecx
jmp 0x5d4fe5
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x124]
mov ebp, ebx
mov ebx, edx
jmp 0x5d4fc8
lea eax, [0x678e60]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x168]
mov dword [esp + 8], eax
call fcn.0040ed40
mov eax, dword [esp + 0x1d0]
jmp 0x5d4f6d
test cl, cl
jne 0x5d42d7
mov ecx, dword [esp + 0x1d0]
mov byte [ecx + 0x10], 0
jmp 0x5d42ed
mov ecx, dword [esp + 0x1d0]
mov byte [ecx + 0x10], 1
jmp 0x5d42ed
lea edi, [edx + 8]
call fcn.0044b4d0
jmp 0x5d426f
lea ecx, [edi + 0x50]
mov esi, edi
mov edi, ecx
call fcn.0044b4d0
mov edi, esi
jmp 0x5d4215
call fcn.0044b4d0
jmp 0x5d41c0
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x1e0], eax
add esp, 0x1cc
ret
mov eax, dword [0x86fbac]
mov ecx, dword [0x86fba8]
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x1e0], eax
add esp, 0x1cc
ret
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x1e0], eax
add esp, 0x1cc
ret
lea eax, [0x635280]
mov dword [esp], eax
lea eax, [0x6c7c50]
mov dword [esp + 4], eax
call fcn.00426780
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004259a0
ud2
call fcn.004259a0
ud2
call fcn.004258a0
ud2
call fcn.004259a0
ud2
call fcn.004259a0
ud2
call fcn.004258a0
ud2
call fcn.004259a0
ud2
call fcn.004259a0
ud2
call fcn.004259a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004259a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.00449d70
jmp fcn.005d3be0