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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x128]
cmp eax, dword [ecx + 8]
jbe 0x5a319b
sub esp, 0x1a8
mov ecx, dword [esp + 0x1b4]
cmp ecx, 2
jl 0x5a3171
xor eax, eax
mov edx, eax
xor ebx, ebx
mov ebp, edx
mov esi, ebp
xor edi, edi
mov dword [esp + 0x40], esi
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0xf0], eax
mov eax, esi
mov dword [esp + 0x64], eax
mov dword [esp + 0x38], edx
mov word [esp + 0x24], bx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], esi
mov dword [esp + 0xec], edi
cmp eax, ecx
jg 0x5a2389
jge 0x5a237c
jae 0x5a2375
mov ecx, dword [esp + 0x1b0]
mov ecx, dword [ecx + eax*4]
movzx edx, byte [ecx]
cmp dl, 0x12
jne 0x5a1b0d
mov edx, dword [ecx + 8]
mov ebp, dword [ecx + 4]
test edx, edx
jle 0x5a1b0d
mov ecx, dword [ebp]
movzx edx, byte [ecx]
cmp dl, 3
je 0x5a2352
xor ecx, ecx
xor edx, edx
xor ebp, ebp
mov dword [esp + 0x9c], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x9c]
mov word [esp + 0x22], cx
mov dword [esp + 0xe8], edx
mov dword [esp + 0x2c], ebp
cmp cx, bx
jne 0x5a2349
mov dword [esp + 0x94], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x30]
cmp ecx, ebp
jge 0x5a1bba
mov ebx, dword [esp + 0x28]
cmp ecx, ebx
jge 0x5a1bbe
cmp ecx, ebp
jae 0x5a2342
mov ebp, dword [edi + ecx*4]
cmp ecx, ebx
jae 0x5a2342
mov edx, dword [edx + ecx*4]
cmp ebp, edx
jne 0x5a1bbe
inc ecx
mov edx, dword [esp + 0x30]
mov ebp, dword [esp + 0xe8]
mov edx, ebp
movzx ebx, word [esp + 0x24]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x3c], ecx
movzx ecx, word [esp + 0x22]
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x30]
cmp ecx, ebp
jl 0x5a1b6c
mov ebx, dword [esp + 0x28]
test ecx, ecx
jle 0x5a1bed
cmp ecx, esi
ja 0x5a1be6
mov edx, dword [esp + 0x38]
movzx ebx, word [esp + 0x24]
mov ebp, dword [esp + 0x44]
inc eax
mov dword [esp + 0x44], ebp
mov ebp, ecx
mov ecx, dword [esp + 0x1b4]
jmp 0x5a1abe
call fcn.004246c0
ud2
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0x2c]
movzx ebp, word [esp + 0x22]
mov dword [esp + 0x58], ebx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x5c], edx
mov word [esp + 0x26], bp
mov esi, ecx
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jne 0x5a1c44
mov ecx, dword [esp + 0xf0]
mov edi, dword [esp + 0x44]
mov edx, eax
mov ebx, ebp
mov esi, dword [esp + 0x5c]
mov ebp, edi
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0xe8]
jmp 0x5a1bd3
lea edx, [ecx + 1]
cmp eax, edx
jne 0x5a1d7a
mov edx, dword [esp + 0x1b4]
cmp ecx, edx
jae 0x5a1d73
mov edi, edx
mov edx, dword [esp + 0x1b0]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0xe4], ecx
mov edx, dword [esp + 0x40]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x44]
cmp ebx, ebp
jg 0x5a1d16
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebp
mov ebx, dword [esp + 0xd0]
lea ebp, [ebx + edx*4]
mov dword [esp + 0xe0], ebp
mov ebp, dword [0x77c810]
test ebp, ebp
jne 0x5a1ce8
mov dword [ebx + edx*4], ecx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
movzx ebp, word [esp + 0x26]
mov edi, edx
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x5c]
mov ecx, ebx
mov ebx, dword [esp + 0x58]
jmp 0x5a1c26
mov edx, dword [esp + 0xe0]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.0040d580
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0xd0]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x1b4]
jmp 0x5a1cc6
lea edi, [0x632880]
mov dword [esp], edi
mov edi, dword [esp + 0xf0]
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.00437350
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x1b4]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x64]
jmp 0x5a1ca0
call fcn.00424660
ud2
mov edx, dword [esp + 0x1ac]
mov ebx, dword [edx + 0x10]
mov dword [esp + 0xb8], ebx
test ebx, ebx
je 0x5a231e
mov ebp, dword [ebx + 0x10]
mov ecx, dword [0x77c810]
lea ebx, [edx + 0x10]
test ecx, ecx
jne 0x5a22f4
mov dword [edx + 0x10], ebp
lea edi, [esp + 0x16c]
mov ebx, eax
xor eax, eax
call fcn.0044a0c1
mov ecx, dword [0x77c810]
test ecx, ecx
jne 0x5a22be
mov edi, dword [esp + 0xb8]
lea esi, [esp + 0x16c]
call fcn.0044a54a
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xcc], ecx
mov byte [ecx], 3
movzx ebp, word [esp + 0x24]
mov word [ecx + 2], bp
mov ebp, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x14]
mov edi, dword [esp + 0x30]
cmp edi, ebp
ja 0x5a2277
mov dword [esp + 0xdc], esi
mov dword [esp + 0x78], ebp
cmp edi, ebp
ja 0x5a2270
mov dword [esp], esi
mov eax, dword [esp + 0xec]
mov dword [esp + 4], eax
shl edi, 2
mov dword [esp + 8], edi
call fcn.0044a7d0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xcc]
mov dword [ecx + 0x18], eax
mov edx, dword [esp + 0x78]
mov dword [ecx + 0x1c], edx
mov edx, dword [0x77c810]
lea ebx, [ecx + 0x14]
test edx, edx
jne 0x5a224d
mov edx, dword [esp + 0xdc]
mov dword [ecx + 0x14], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x50], edx
mov ebx, dword [esp + 0x64]
cmp edx, ebx
jge 0x5a1ee1
mov ebp, dword [esp + 0x1b4]
cmp edx, ebp
jae 0x5a2246
mov esi, dword [esp + 0x1b0]
mov edi, dword [esi + edx*4]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x1ac]
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.005a31b0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x1b0]
lea edx, [ecx + eax*4]
mov ebx, dword [esp + 0xc]
mov ebp, dword [0x77c810]
test ebp, ebp
jne 0x5a222a
mov dword [ecx + eax*4], ebx
lea edx, [eax + 1]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x50], edx
mov ebx, dword [esp + 0x64]
cmp edx, ebx
jl 0x5a1e74
mov eax, dword [esp + 0x38]
cmp eax, ebx
ja 0x5a2223
mov edx, dword [esp + 0x1b8]
cmp ebx, edx
ja 0x5a2223
mov ebp, dword [esp + 0x1ac]
mov dword [esp], ebp
sub edx, eax
lea edi, [edx - 1]
sar edi, 0x1f
shl eax, 2
xor edi, 0xffffffff
and eax, edi
mov edi, dword [esp + 0x1b0]
add eax, edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
sub ebx, eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov byte [esp + 0x10], 0x13
call fcn.005a1580
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x1ac]
mov edx, dword [ecx + 0x10]
mov dword [esp + 0xc0], edx
test edx, edx
je 0x5a2203
mov ebx, dword [edx + 0x10]
mov ebp, dword [0x77c810]
mov esi, edx
lea edx, [ecx + 0x10]
test ebp, ebp
jne 0x5a21dd
mov dword [ecx + 0x10], ebx
lea edi, [esp + 0x130]
mov edx, eax
xor eax, eax
call fcn.0044a0c1
mov ecx, dword [0x77c810]
test ecx, ecx
jne 0x5a21b2
mov edi, esi
lea esi, [esp + 0x130]
call fcn.0044a54a
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xc8], ecx
mov byte [ecx], 0x12
mov ebx, dword [ecx + 0xc]
mov ebp, dword [ecx + 4]
cmp ebx, 2
jl 0x5a2168
mov esi, 2
mov dword [esp + 0xe0], ebp
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebx
mov edi, ebx
mov ebx, dword [0x77c810]
test ebx, ebx
jne 0x5a2131
mov ebx, dword [esp + 0xcc]
mov dword [ebp], ebx
mov ebx, dword [0x77c810]
lea ecx, [ebp + 4]
test ebx, ebx
jne 0x5a210f
mov dword [ebp + 4], edx
mov ecx, dword [esp + 0xc8]
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], edi
mov edx, dword [0x77c810]
lea ebx, [ecx + 4]
test edx, edx
jne 0x5a20f5
mov dword [ecx + 4], ebp
mov edx, dword [esp + 0x40]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x44]
cmp ebx, ebp
jg 0x5a20af
mov esi, dword [esp + 0xf0]
mov dword [esp + 0xd0], esi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebp
mov edi, ebx
lea ebx, [esi + edx*4]
mov dword [esp + 0xe0], ebx
mov ebx, dword [0x77c810]
test ebx, ebx
jne 0x5a2089
mov dword [esi + edx*4], ecx
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x1b4]
mov ecx, dword [esp + 0x40]
mov edx, ebp
mov ebx, dword [esp + 0xd0]
jmp 0x5a1cce
mov edx, dword [esp + 0xe0]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.0040d580
xor eax, eax
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0x40]
jmp 0x5a2065
lea esi, [0x632880]
mov dword [esp], esi
mov esi, dword [esp + 0xf0]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.00437350
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [eax + 1]
xor eax, eax
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x40]
jmp 0x5a203d
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040d580
xor eax, eax
mov ecx, dword [esp + 0xc8]
jmp 0x5a2027
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.0040d580
xor eax, eax
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x74]
jmp 0x5a2006
mov dword [esp], ebp
mov ebx, dword [esp + 0xcc]
mov dword [esp + 4], ebx
call fcn.0040d580
xor eax, eax
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x74]
jmp 0x5a1ff2
lea esi, [0x632880]
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 2
call fcn.00437350
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea esi, [eax + 2]
xor eax, eax
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xa8]
jmp 0x5a1fc9
lea ecx, [0x638be0]
mov dword [esp], ecx
mov dword [esp + 4], esi
lea ecx, [esp + 0x130]
mov dword [esp + 8], ecx
call fcn.0040d690
xor eax, eax
mov edx, dword [esp + 0xa8]
jmp 0x5a1fa4
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.0040d580
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x1ac]
mov esi, dword [esp + 0xc0]
jmp 0x5a1f78
lea edx, [0x638be0]
mov dword [esp], edx
call fcn.0040cd50
mov ecx, dword [esp + 4]
xor eax, eax
mov edx, dword [esp + 0xa8]
jmp 0x5a1fab
call fcn.004246c0
ud2
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.0040d580
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x1b0]
jmp 0x5a1ec7
call fcn.00424660
ud2
mov dword [esp], ebx
mov edx, dword [esp + 0xdc]
mov dword [esp + 4], edx
call fcn.0040d580
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xcc]
jmp 0x5a1e64
call fcn.004246c0
ud2
lea eax, [0x60c5c0]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edi
call fcn.00437350
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
xor eax, eax
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0x1ac]
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x30]
jmp 0x5a1e07
lea ecx, [0x638be0]
mov dword [esp], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], ecx
lea ebp, [esp + 0x16c]
mov dword [esp + 8], ebp
call fcn.0040d690
xor eax, eax
mov edx, dword [esp + 0x1ac]
mov ebx, dword [esp + 0x64]
jmp 0x5a1ddb
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040d580
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x1ac]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0xec]
jmp 0x5a1daa
lea ebx, [0x638be0]
mov dword [esp], ebx
call fcn.0040cd50
mov ecx, dword [esp + 4]
xor eax, eax
mov edx, dword [esp + 0x1ac]
mov ebx, dword [esp + 0x64]
jmp 0x5a1de2
call fcn.00424660
ud2
mov ebx, dword [esp + 0x28]
jmp 0x5a1bed
movzx edx, word [ecx + 2]
mov ebp, dword [ecx + 0x14]
mov esi, dword [ecx + 0x1c]
mov ecx, dword [ecx + 0x18]
and edx, 1
mov dword [esp + 0x28], ecx
mov ecx, edx
mov edx, ebp
mov ebp, esi
mov esi, dword [esp + 0x34]
jmp 0x5a1b33
call fcn.00424660
ud2
xor ebx, ebx
xor ecx, ecx
xor edx, edx
xor ebp, ebp
jmp 0x5a1bfd
xor eax, eax
xor ecx, ecx
xor edx, edx
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0xf0]
xor esi, esi
mov dword [esp + 0x60], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0xc4], edx
mov dword [esp + 0x78], ebx
mov dword [esp + 0xec], ebp
mov dword [esp + 0x74], esi
mov edi, dword [esp + 0x40]
cmp eax, edi
jg 0x5a2a6f
jge 0x5a2a61
jae 0x5a2a5a
mov ebp, dword [esp + 0xf0]
mov ebx, dword [ebp + eax*4]
movzx esi, byte [ebx]
xchg esi, eax
cmp al, 2
xchg esi, eax
jne 0x5a2a16
xor ebx, ebx
mov dword [esp + 0xa4], ebx
test edx, edx
jne 0x5a28f8
mov dword [esp + 0xd4], ebx
cmp eax, ecx
jne 0x5a242c
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0xec]
mov edi, dword [esp + 0x60]
inc edi
mov ebp, esi
mov esi, edx
mov edx, ebx
mov ebx, ecx
mov ecx, eax
mov eax, edi
jmp 0x5a239c
lea esi, [ecx + 1]
cmp eax, esi
jne 0x5a2545
cmp ecx, edi
jae 0x5a253e
mov ecx, dword [ebp + ecx*4]
mov dword [esp + 0xe4], ecx
mov edx, dword [esp + 0x74]
lea esi, [edx + 1]
mov ebp, dword [esp + 0x78]
cmp esi, ebp
jg 0x5a24e4
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebp
mov edi, dword [esp + 0xd0]
lea eax, [edi + edx*4]
mov dword [esp + 0xe0], eax
mov eax, dword [0x77c810]
test eax, eax
jne 0x5a24b9
mov dword [edi + edx*4], ecx
mov eax, dword [esp + 0x60]
mov ecx, ebp
mov edx, esi
mov esi, edi
mov ebp, dword [esp + 0xf0]
mov edi, dword [esp + 0x40]
jmp 0x5a2416
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040d580
mov ebx, dword [esp + 0xd4]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0xd0]
jmp 0x5a249f
lea edi, [0x632880]
mov dword [esp], edi
mov edi, dword [esp + 0xec]
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.00437350
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea esi, [ecx + 1]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0xd4]
mov edi, dword [esp + 0x40]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x60]
jmp 0x5a2479
call fcn.00424660
ud2
mov esi, ecx
mov dword [esp + 0x54], ecx
cmp ecx, eax
jge 0x5a25c1
cmp ecx, edi
jae 0x5a28f1
mov ebx, dword [ebp + ecx*4]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x1ac]
mov dword [esp], ebx
cmp ecx, esi
setne dl
mov byte [esp + 8], dl
call fcn.005a3440
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xf0]
lea edx, [ecx + eax*4]
mov ebx, dword [esp + 0xc]
mov ebp, dword [0x77c810]
test ebp, ebp
jne 0x5a28d5
mov dword [ecx + eax*4], ebx
inc eax
mov edx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xd4]
mov ebp, ecx
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x40]
mov ecx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x54], ecx
cmp ecx, eax
jl 0x5a254f
cmp esi, eax
ja 0x5a28ce
mov ecx, dword [esp + 0x44]
cmp eax, ecx
ja 0x5a28ce
mov edi, dword [esp + 0x1ac]
mov dword [esp], edi
sub ecx, esi
shl esi, 2
lea ebx, [ecx - 1]
sar ebx, 0x1f
xor ebx, 0xffffffff
and esi, ebx
lea ebx, [esi + ebp]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x38]
sub eax, ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov byte [esp + 0x10], 0x13
call fcn.005a1580
mov eax, dword [esp + 0x14]
mov dword [esp + 0xac], eax
mov ecx, dword [esp + 0x1ac]
mov edx, dword [ecx + 0x10]
mov dword [esp + 0xb0], edx
test edx, edx
je 0x5a28ae
mov ebx, dword [0x77c810]
mov ebp, dword [edx + 0x10]
mov esi, edx
lea edx, [ecx + 0x10]
test ebx, ebx
jne 0x5a2888
mov dword [ecx + 0x10], ebp
lea edi, [esp + 0xf4]
mov edx, eax
xor eax, eax
call fcn.0044a0c1
mov ecx, dword [0x77c810]
test ecx, ecx
jne 0x5a285d
mov edi, esi
lea esi, [esp + 0xf4]
call fcn.0044a54a
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xb4], ecx
mov byte [ecx], 0x12
mov ebx, dword [ecx + 0xc]
mov ebp, dword [ecx + 4]
cmp ebx, 2
jl 0x5a2813
mov esi, 2
mov dword [esp + 0xe0], ebp
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov edi, dword [0x77c810]
test edi, edi
jne 0x5a27dc
mov edi, dword [esp + 0xc4]
mov dword [ebp], edi
mov edi, dword [0x77c810]
lea eax, [ebp + 4]
test edi, edi
jne 0x5a27b5
mov dword [ebp + 4], edx
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], ebx
mov eax, dword [0x77c810]
lea edx, [ecx + 4]
test eax, eax
jne 0x5a279d
mov dword [ecx + 4], ebp
mov eax, dword [esp + 0x74]
lea edx, [eax + 1]
mov ebx, dword [esp + 0x78]
cmp edx, ebx
jg 0x5a2759
mov ebp, dword [esp + 0xec]
mov dword [esp + 0xd0], ebp
mov dword [esp + 0x78], edx
mov dword [esp + 0x74], ebx
lea esi, [ebp + eax*4]
mov edi, dword [0x77c810]
test edi, edi
jne 0x5a273c
mov dword [ebp + eax*4], ecx
mov ebx, dword [esp + 0xd4]
mov edi, ebp
mov esi, edx
mov ebp, dword [esp + 0x74]
jmp 0x5a249f
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.0040d580
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0xd0]
jmp 0x5a2728
lea ebp, [0x632880]
mov dword [esp], ebp
mov ebp, dword [esp + 0xec]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.00437350
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xb4]
jmp 0x5a2707
mov dword [esp], edx
mov dword [esp + 4], ebp
call fcn.0040d580
mov ecx, dword [esp + 0xb4]
jmp 0x5a26f1
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040d580
mov ecx, dword [esp + 0xb4]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0x70]
jmp 0x5a26d7
mov dword [esp], ebp
mov edi, dword [esp + 0xc4]
mov dword [esp + 4], edi
call fcn.0040d580
xor eax, eax
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0x70]
jmp 0x5a26c3
lea esi, [0x632880]
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 2
call fcn.00437350
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea esi, [eax + 2]
xor eax, eax
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xac]
jmp 0x5a269c
lea ecx, [0x638be0]
mov dword [esp], ecx
mov dword [esp + 4], esi
lea ecx, [esp + 0xf4]
mov dword [esp + 8], ecx
call fcn.0040d690
xor eax, eax
mov edx, dword [esp + 0xac]
jmp 0x5a2677
mov dword [esp], edx
mov dword [esp + 4], ebp
call fcn.0040d580
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x1ac]
mov esi, dword [esp + 0xb0]
jmp 0x5a264b
lea edx, [0x638be0]
mov dword [esp], edx
call fcn.0040cd50
mov ecx, dword [esp + 4]
xor eax, eax
mov edx, dword [esp + 0xac]
jmp 0x5a267e
call fcn.004246c0
ud2
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.0040d580
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xf0]
jmp 0x5a259a
call fcn.00424660
ud2
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.005a9ca0
movzx eax, byte [esp + 8]
test al, al
je 0x5a2a0d
mov eax, dword [esp + 0xc4]
movzx ecx, byte [eax]
cmp cl, 3
jne 0x5a29e4
mov edx, dword [eax + 0x18]
cmp edx, 1
jne 0x5a29e4
mov edx, 1
test dl, dl
je 0x5a2963
mov ebp, dword [esp + 0xf0]
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0xc4]
mov esi, dword [esp + 0xec]
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
jmp 0x5a2416
cmp cl, 0x11
jne 0x5a2997
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
cmp ecx, edx
jne 0x5a2997
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
test ecx, ecx
jbe 0x5a29dd
mov ecx, dword [edx]
movzx edx, byte [ecx]
cmp dl, 3
jne 0x5a29bd
mov ecx, dword [ecx + 0x18]
cmp ecx, 1
jne 0x5a29bd
mov ecx, 1
test cl, cl
jne 0x5a2939
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0xf0]
mov edi, dword [esp + 0x40]
jmp 0x5a23fc
cmp dl, 4
jne 0x5a29c9
mov ecx, 1
jmp 0x5a2993
cmp dl, 5
jne 0x5a29d5
mov ecx, 1
jmp 0x5a2993
cmp dl, 6
sete cl
jmp 0x5a2993
call fcn.00424660
ud2
cmp cl, 4
jne 0x5a29f3
mov edx, 1
jmp 0x5a2935
cmp cl, 5
jne 0x5a2a02
mov edx, 1
jmp 0x5a2935
cmp cl, 6
sete dl
jmp 0x5a2935
mov eax, dword [esp + 0xc4]
jmp 0x5a2997
xchg esi, eax
cmp al, 0x12
xchg esi, eax
jne 0x5a2a4e
mov esi, dword [ebx + 8]
mov ebp, dword [ebx + 4]
test esi, esi
jle 0x5a2a4e
mov ebx, dword [ebp]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x5a2a42
mov ebp, dword [esp + 0xf0]
xor ebx, ebx
jmp 0x5a23ed
mov ebp, dword [esp + 0xf0]
jmp 0x5a23ed
mov ebp, dword [esp + 0xf0]
jmp 0x5a23ed
call fcn.00424660
ud2
mov ebp, dword [esp + 0xf0]
xor ebx, ebx
jmp 0x5a23fc
mov eax, ebp
xor ecx, ecx
xor edx, edx
xor edi, edi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0xf0], ebp
mov dword [esp + 0x40], edi
cmp ecx, esi
jg 0x5a2fda
jge 0x5a2ad2
jae 0x5a2fd3
mov eax, dword [eax + ecx*4]
movzx esi, byte [eax]
xchg esi, eax
cmp al, 3
xchg esi, eax
jne 0x5a2fa4
mov eax, dword [eax + 0x18]
cmp eax, 1
jne 0x5a2fa4
mov eax, 1
test al, al
je 0x5a2ad2
inc ecx
mov eax, dword [esp + 0xec]
mov esi, dword [esp + 0x74]
jmp 0x5a2a77
cmp ecx, edx
jne 0x5a2bb4
mov eax, dword [esp + 0x74]
cmp ecx, eax
mov dword [esp + 0x40], edi
jge 0x5a2bad
jae 0x5a2ba6
mov edx, dword [esp + 0xec]
mov esi, dword [edx + ecx*4]
mov dword [esp + 0xe4], esi
lea edx, [edi + 1]
cmp edx, ebx
jg 0x5a2b61
mov dword [esp + 0xd0], ebp
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ebx
lea eax, [ebp + edi*4]
mov dword [esp + 0xe0], eax
mov eax, dword [0x77c810]
test eax, eax
jne 0x5a2b39
mov dword [ebp + edi*4], esi
lea eax, [ecx + 1]
mov edi, edx
mov edx, eax
jmp 0x5a2ac4
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.0040d580
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0xd0]
jmp 0x5a2b30
lea eax, [0x632880]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.00437350
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0xe4]
mov edi, dword [esp + 0x40]
jmp 0x5a2b08
call fcn.00424660
ud2
mov edx, edi
jmp 0x5a2b30
lea eax, [edx + 1]
mov dword [esp + 0x78], eax
cmp ecx, eax
jne 0x5a2c84
mov eax, dword [esp + 0x74]
cmp edx, eax
jae 0x5a2c7d
mov esi, dword [esp + 0xec]
mov edx, dword [esi + edx*4]
mov dword [esp + 0xe4], edx
lea esi, [edi + 1]
cmp esi, ebx
jg 0x5a2c38
mov dword [esp + 0xd0], ebp
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], ebx
mov ebx, dword [0x77c810]
lea esi, [ebp + edi*4]
test ebx, ebx
jne 0x5a2c19
mov dword [ebp + edi*4], edx
cmp ecx, eax
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
mov edi, edx
jmp 0x5a2ae0
mov dword [esp], esi
mov dword [esp + 4], edx
call fcn.0040d580
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x74]
cmp ecx, eax
mov ebp, dword [esp + 0xd0]
jmp 0x5a2c0a
lea eax, [0x632880]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
call fcn.00437350
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea esi, [eax + 1]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0xe4]
mov edi, dword [esp + 0x40]
jmp 0x5a2be7
call fcn.00424660
ud2
mov esi, dword [esp + 0xec]
mov dword [esp + 0x48], edx
cmp eax, ecx
jge 0x5a2cfa
mov ebp, dword [esp + 0x74]
cmp edx, ebp
jae 0x5a2f9d
mov ebx, dword [esi + edx*4]
movzx edi, byte [ebx]
cmp eax, ebp
jae 0x5a2f9d
mov esi, dword [esi + eax*4]
movzx ebp, byte [esi]
xchg edi, eax
xchg ebp, ebx
cmp al, bl
xchg ebp, ebx
xchg edi, eax
jae 0x5a2f82
mov edx, eax
inc edx
mov ebx, dword [esp + 0xec]
mov ebp, dword [esp + 0x74]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0xf0]
mov esi, dword [esp + 0xec]
mov edi, dword [esp + 0x40]
mov esi, eax
mov eax, edx
mov edx, esi
mov esi, dword [esp + 0xec]
mov dword [esp + 0x48], edx
cmp eax, ecx
jl 0x5a2c93
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x74]
cmp eax, ebp
jae 0x5a2f7b
mov ebx, dword [esi + eax*4]
mov dword [esp + 0xe4], ebx
lea edi, [esi + eax*4]
mov dword [esp + 0xe0], edi
cmp edx, ebp
jae 0x5a2f7b
mov edi, dword [esi + edx*4]
lea ebp, [esi + edx*4]
mov dword [esp + 0xd8], ebp
mov ebp, dword [0x77c810]
test ebp, ebp
jne 0x5a2f49
mov dword [esi + eax*4], edi
mov ebp, dword [0x77c810]
test ebp, ebp
jne 0x5a2f22
mov dword [esi + edx*4], ebx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x4c], edx
cmp edx, ecx
jge 0x5a2dea
mov ebx, dword [esi + eax*4]
mov ebp, dword [esp + 0x74]
cmp edx, ebp
jae 0x5a2f1b
mov edi, dword [esi + edx*4]
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.005a5380
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xec]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0xbc], edx
test byte [edx], al
mov ebx, dword [0x77c810]
mov ebp, dword [esp + 0x1ac]
mov esi, dword [ebp + 0x10]
lea edi, [edx + 0x10]
test ebx, ebx
jne 0x5a2ef1
mov dword [edx + 0x10], esi
mov ebx, dword [0x77c810]
lea esi, [ebp + 0x10]
test ebx, ebx
jne 0x5a2ece
mov dword [ebp + 0x10], edx
lea edx, [eax + 1]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0xec]
mov dword [esp + 0x4c], edx
cmp edx, ecx
jl 0x5a2d65
mov edx, dword [esi + eax*4]
mov dword [esp], edx
call fcn.005a1370
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xec]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0xe4], eax
mov edx, dword [esp + 0x40]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x44]
cmp ebx, ebp
jg 0x5a2e83
mov esi, dword [esp + 0xf0]
mov dword [esp + 0xd0], esi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebp
mov edi, dword [0x77c810]
lea ecx, [esi + edx*4]
test edi, edi
jne 0x5a2e5c
mov dword [esi + edx*4], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x74]
cmp eax, ecx
mov eax, ecx
mov ecx, dword [esp + 0x68]
mov edx, ebx
mov ebp, esi
mov ebx, dword [esp + 0x44]
jmp 0x5a2c12
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040d580
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x74]
cmp eax, ecx
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0xd0]
jmp 0x5a2e49
lea esi, [0x632880]
mov dword [esp], esi
mov esi, dword [esp + 0xf0]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.00437350
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0x40]
jmp 0x5a2e20
mov dword [esp], esi
mov dword [esp + 4], edx
call fcn.0040d580
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xec]
mov ebp, dword [esp + 0x1ac]
jmp 0x5a2dcc
mov dword [esp], edi
mov dword [esp + 4], esi
call fcn.0040d580
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xbc]
mov ebp, dword [esp + 0x1ac]
jmp 0x5a2db8
call fcn.00424660
ud2
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.0040d580
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0xec]
jmp 0x5a2d55
mov ebp, dword [esp + 0xe0]
mov dword [esp], ebp
mov dword [esp + 4], edi
call fcn.0040d580
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0xe4]
mov esi, dword [esp + 0xec]
jmp 0x5a2d44
call fcn.00424660
ud2
jne 0x5a2f92
mov ebx, dword [ebx + 0x18]
mov ebp, dword [esi + 0x18]
cmp ebx, ebp
jl 0x5a2cc1
mov edx, eax
mov eax, dword [esp + 0x48]
jmp 0x5a2cc3
call fcn.00424660
ud2
xchg esi, eax
cmp al, 4
xchg esi, eax
jne 0x5a2fb5
mov eax, 1
jmp 0x5a2ac0
xchg esi, eax
cmp al, 5
xchg esi, eax
jne 0x5a2fc6
mov eax, 1
jmp 0x5a2ac0
xchg esi, eax
cmp al, 6
xchg esi, eax
sete al
jmp 0x5a2ac0
call fcn.00424660
ud2
mov eax, ebp
xor ecx, ecx
xor edx, edx
mov dword [esp + 0xec], ebp
mov dword [esp + 0x78], edx
cmp ecx, edi
jge 0x5a3049
lea esi, [ecx + 1]
mov dword [esp + 0x74], esi
cmp esi, edi
jge 0x5a316a
cmp ecx, edi
jae 0x5a315c
mov ebp, dword [eax + ecx*4]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x5a3163
cmp esi, edi
jae 0x5a315c
mov ebp, dword [eax + ecx*4 + 4]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x5a3065
mov ecx, dword [esp + 0xec]
mov ebp, ecx
mov ecx, esi
mov dword [esp + 0xec], ebp
mov dword [esp + 0x78], edx
cmp ecx, edi
jl 0x5a2fef
mov dword [esp + 0x1c0], ebp
mov dword [esp + 0x1c4], edx
mov dword [esp + 0x1c8], ebx
add esp, 0x1a8
ret
cmp ecx, edi
jae 0x5a3155
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0xe4], ecx
lea ebp, [edx + 1]
cmp ebp, ebx
jg 0x5a30fb
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x78], ebp
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0xd0]
lea edi, [eax + edx*4]
mov dword [esp + 0xe0], edi
mov edi, dword [0x77c810]
test edi, edi
jne 0x5a30d3
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0xf0]
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0xd0]
mov edx, ebp
jmp 0x5a3036
mov edx, dword [esp + 0xe0]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.0040d580
mov eax, dword [esp + 0xd0]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x74]
jmp 0x5a30ba
lea eax, [0x632880]
mov dword [esp], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call fcn.00437350
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea ebp, [ecx + 1]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x40]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xf0]
jmp 0x5a3094
call fcn.00424660
ud2
call fcn.00424660
ud2
cmp ecx, edi
jmp 0x5a3067
cmp ecx, edi
jmp 0x5a3067
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], ecx
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x1c8], eax
add esp, 0x1a8
ret
call fcn.00448420
jmp fcn.005a1a60