Function at 0x4ab1a0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x6c
mov eax, dword [0x4da8f0]
xor eax, esp
mov dword [esp + 0x68], eax
mov eax, dword [0x5097e4]
push ebp
xor ebp, ebp
push 0x4c9110
push eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x34], ebp
call fcn.004b3ef0
add esp, 8
mov dword [0x5097e0], eax
cmp eax, ebp
jne 0x4ab1fe
mov ecx, dword [0x5097e4]
push ecx
push ebp
mov ecx, 0x508304
call fcn.0042d4c0
lea eax, [ebp + 0x12]
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
push 2
push 0xffffffffffffffff
push 0xfffe0000
push eax
call fcn.004b3fa3
add esp, 0x10
test eax, eax
jne 0x4ab22a
mov edx, dword [0x5097e0]
push edx
call fcn.004b433e
and eax, edx
add esp, 4
cmp eax, 0xffffffff
jne 0x4ab284
mov eax, dword [0x5097e0]
push ebp
push ebp
push ebp
push eax
call fcn.004b3fa3
add esp, 0x10
test eax, eax
je 0x4ab284
mov ecx, dword [0x5097e0]
push ecx
call fcn.004b3dae
mov edx, dword [0x5097e4]
add esp, 4
push edx
push 0x204
mov dword [0x5097e0], ebp
call fcn.004671c0
push eax
push ebp
call fcn.0049ac10
add esp, 0xc
mov eax, 0xb
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
mov eax, dword [0x5097e0]
push edi
mov edi, 0x4cf5c0
call fcn.004ab0b0
test eax, eax
jne 0x4ab2dc
mov eax, dword [0x5097e0]
push eax
call fcn.004b3dae
add esp, 4
push 0x2ad
mov dword [0x5097e0], ebp
call fcn.004671c0
mov ecx, dword [0x5097e4]
push eax
push ecx
call fcn.0049ac10
add esp, 8
pop edi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
mov edx, dword [0x5097e0]
push ebx
push esi
push edx
call fcn.004b433e
mov esi, eax
mov eax, dword [0x5097e0]
mov ebx, edx
add esp, 4
mov edi, 0x4cf5c0
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebx
call fcn.004ab0b0
test eax, eax
je 0x4ab33d
lea esp, [esp]
mov eax, dword [0x5097e0]
push eax
call fcn.004b433e
mov esi, eax
mov eax, dword [0x5097e0]
mov ebx, edx
add esp, 4
mov edi, 0x4cf5c0
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebx
call fcn.004ab0b0
test eax, eax
jne 0x4ab310
mov ecx, dword [0x5097e0]
push ebp
push ebx
push esi
push ecx
call fcn.004b3fa3
add esp, 0x10
test eax, eax
je 0x4ab39a
mov edx, dword [0x5097e0]
push edx
call fcn.004b3dae
mov eax, dword [0x5097e4]
add esp, 4
push eax
push 0x204
mov dword [0x5097e0], ebp
call fcn.004671c0
push eax
push ebp
call fcn.0049ac10
add esp, 0xc
pop esi
pop ebx
pop edi
mov eax, 0xb
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
mov ecx, dword [0x5097e0]
push ecx
push 0x12
lea edx, [esp + 0x4c]
push 1
push edx
call fcn.004b3d1a
movzx eax, byte [esp + 0x55]
movzx edx, byte [esp + 0x54]
shl ax, 8
movzx ecx, ax
or ecx, edx
movzx edx, byte [esp + 0x57]
shl dx, 8
movzx ebp, dx
movzx edx, byte [esp + 0x63]
shl dx, 8
inc ecx
movzx ebx, dx
movzx edx, byte [esp + 0x61]
lea eax, [ecx - 1]
mov dword [0x5097f8], eax
movzx eax, byte [esp + 0x56]
or ebp, eax
movzx eax, byte [esp + 0x62]
or ebx, eax
shl dx, 8
movzx eax, dx
movzx edx, byte [esp + 0x60]
shl ebx, 0x10
or ebx, eax
movzx eax, byte [esp + 0x5b]
shl ax, 8
or ebx, edx
movzx edx, byte [esp + 0x5a]
or ax, dx
movzx eax, ax
cdq
mov edi, eax
movzx eax, byte [esp + 0x5f]
shl ax, 8
movzx esi, ax
movzx eax, byte [esp + 0x5d]
mov dword [esp + 0x44], edx
movzx edx, byte [esp + 0x5e]
or esi, edx
shl ax, 8
movzx edx, ax
movzx eax, byte [esp + 0x5c]
shl esi, 0x10
or esi, edx
movzx edx, byte [esp + 0x64]
or esi, eax
movzx ax, byte [esp + 0x65]
shl ax, 8
add esp, 0x10
or ax, dx
mov dword [0x5097f4], ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], edi
mov word [0x50834c], ax
je 0x4ab511
movzx eax, ax
inc eax
push eax
call fcn.004b1137
add esp, 4
mov dword [0x509880], eax
test eax, eax
je 0x4abfad
mov ecx, dword [0x5097e0]
movzx edx, word [0x50834c]
push ecx
push 1
push edx
push eax
call fcn.004b3d1a
add esp, 0x10
cmp eax, 1
mov eax, dword [0x509880]
je 0x4ab500
push eax
call fcn.004b1201
mov ecx, dword [0x5097e0]
push ecx
mov dword [0x509880], 0
call fcn.004b3862
add esp, 8
neg eax
pop esi
sbb eax, eax
pop ebx
and eax, 9
pop edi
add eax, 2
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
movzx edx, word [0x50834c]
mov byte [edx + eax], 0
mov ecx, dword [0x5097f4]
or edi, dword [esp + 0x34]
jne 0x4ab541
mov ecx, dword [0x5097e0]
push ecx
call fcn.004b3dae
add esp, 4
mov dword [0x5097e0], edi
pop esi
pop ebx
pop edi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
cmp ecx, 1
je 0x4ab66e
cmp dword [0x509780], 0
jne 0x4ac7f9
mov edx, dword [0x508354]
push 0x4c7ad0
push edx
call fcn.00456c20
test al, al
jne 0x4ab59c
mov eax, dword [0x5097e0]
push eax
call fcn.004b3dae
add esp, 4
pop esi
pop ebx
pop edi
mov dword [0x5097e0], 0
mov eax, 0x10
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
mov ecx, dword [0x5097f4]
cmp ecx, 1
je 0x4ab66e
mov edx, dword [0x5097ec]
mov eax, dword [0x5097e4]
mov di, word [eax]
cmp di, word [edx]
jne 0x4ab5dc
test di, di
je 0x4ab5d8
mov di, word [eax + 2]
cmp di, word [edx + 2]
jne 0x4ab5dc
add eax, 4
add edx, 4
test di, di
jne 0x4ab5b6
xor eax, eax
jmp 0x4ab5e1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4ab66e
mov ecx, dword [0x5097e0]
push ecx
call fcn.004b3dae
add esp, 4
cmp byte [0x529c72], 0x53
mov dword [0x5097e0], 0
jne 0x4ab63d
push 0x5fa
call fcn.004671c0
mov edx, dword [0x5097e4]
push eax
push edx
call fcn.0049ac10
add esp, 8
pop esi
pop ebx
pop edi
mov eax, 0xc
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
push 0x2c8
call fcn.004671c0
push eax
mov eax, dword [0x5097e4]
push eax
call fcn.0049ac10
add esp, 8
pop esi
pop ebx
pop edi
mov eax, 0xc
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
xor edx, edx
cmp dword [0x509778], 1
mov dword [0x509850], edx
mov dword [0x509858], edx
mov dword [0x50985c], edx
jne 0x4ab690
cmp ecx, 1
je 0x4ab6a2
cmp dword [0x509780], edx
je 0x4ab9f1
mov ebx, dword [esp + 0x24]
xor edx, edx
cmp ebx, 0xffffffff
jne 0x4ab6ad
cmp dword [esp + 0x28], edx
je 0x4ab722
cmp esi, 0xffffffff
jne 0x4ab6b8
xor eax, eax
cmp eax, edx
je 0x4ab722
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
sub ecx, esi
mov eax, 0
sbb edx, eax
sub ecx, 0x50
push 0
sbb edx, eax
mov eax, dword [0x5097e0]
push edx
push ecx
push eax
call fcn.004b3fa3
add esp, 0x10
test eax, eax
jne 0x4abd63
mov eax, dword [0x5097e0]
mov edi, 0x4cf5b8
call fcn.004ab0b0
test eax, eax
je 0x4abd7c
mov eax, dword [0x5097e0]
push eax
call fcn.004b433e
add esp, 4
mov ecx, 0xfffffffc
sub ecx, ebx
mov esi, 0xffffffff
sbb esi, dword [esp + 0x28]
jmp 0x4ab9e5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [0x5097e0]
sub eax, 0x18
push 0
sbb ecx, 0
push ecx
push eax
push edx
call fcn.004b3fa3
add esp, 0x10
test eax, eax
mov eax, dword [0x5097e0]
je 0x4ab791
push eax
call fcn.004b3dae
add esp, 4
push 0x2ad
mov dword [0x5097e0], 0
call fcn.004671c0
mov ecx, dword [0x5097e4]
push eax
push ecx
call fcn.0049ac10
add esp, 8
pop esi
pop ebx
pop edi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
push 0x4cf5b0
call fcn.004ab150
test eax, eax
je 0x4ab9f1
mov edx, dword [0x5097e0]
push edx
call fcn.004b433e
mov esi, eax
mov eax, dword [0x5097e0]
push eax
push 1
lea ecx, [esp + 0x50]
mov edi, edx
push 0x10
sub esi, 4
mov ebx, 0
push ecx
sbb edi, ebx
call fcn.004b3d1a
add esp, 0x14
cmp eax, 1
je 0x4ab817
mov edx, dword [0x5097e0]
push edx
call fcn.004b3dae
mov eax, dword [0x5097e4]
add esp, 4
push eax
push ebx
push eax
push ebx
mov ecx, 0x508304
mov dword [0x5097e0], ebx
call fcn.0042d2d0
pop esi
lea eax, [ebx + 0xb]
pop ebx
pop edi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
mov eax, dword [0x5097e0]
push 0x4cf5c0
call fcn.004ab150
test eax, eax
jne 0x4ab869
mov eax, dword [0x5097e0]
push eax
call fcn.004b3dae
mov eax, dword [0x5097e4]
add esp, 4
push eax
push ebx
push eax
push ebx
mov ecx, 0x508304
mov dword [0x5097e0], ebx
call fcn.0042d2d0
pop esi
pop ebx
pop edi
mov eax, 0xb
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
movzx ecx, byte [esp + 0x4f]
movzx edx, byte [esp + 0x4e]
shl cx, 8
movzx eax, cx
movzx ecx, byte [esp + 0x4d]
or eax, edx
shl cx, 8
movzx edx, cx
movzx ecx, byte [esp + 0x4c]
shl eax, 0x10
or eax, edx
movzx edx, byte [esp + 0x4b]
or eax, ecx
shl dx, 8
movzx ecx, dx
movzx edx, byte [esp + 0x4a]
or ecx, edx
movzx edx, byte [esp + 0x49]
shl dx, 8
movzx edx, dx
shl ecx, 0x10
or ecx, edx
movzx edx, byte [esp + 0x48]
or ecx, edx
xor edx, edx
or eax, edx
movzx edx, byte [esp + 0x51]
mov dword [esp + 0x40], eax
movzx ax, byte [esp + 0x53]
shl ax, 8
xor ebx, ebx
or ebx, ecx
movzx ecx, byte [esp + 0x52]
movzx eax, ax
or eax, ecx
shl dx, 8
movzx ecx, dx
movzx edx, byte [esp + 0x50]
shl eax, 0x10
or eax, ecx
or eax, edx
mov dword [0x5097f4], eax
cmp eax, 1
jne 0x4ac7f9
mov eax, dword [esp + 0x40]
mov ecx, dword [0x5097e0]
push 0
push eax
push ebx
push ecx
call fcn.004b3fa3
add esp, 0x10
test eax, eax
jne 0x4ab952
mov eax, dword [0x5097e0]
push 0x4cf5a8
call fcn.004ab150
test eax, eax
jne 0x4ab9f1
mov ecx, dword [0x5097e0]
push eax
sub esi, 0x50
sbb edi, eax
push edi
push esi
push ecx
call fcn.004b3fa3
add esp, 0x10
test eax, eax
je 0x4ab99c
mov edx, dword [0x5097e0]
push edx
call fcn.004b3dae
add esp, 4
push 0x2ad
mov dword [0x5097e0], 0
call fcn.004671c0
push eax
mov eax, dword [0x5097e4]
push eax
call fcn.0049ac10
add esp, 8
pop esi
pop ebx
pop edi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
mov esi, dword [0x5097e0]
call fcn.004aaff0
test eax, eax
je 0x4abd7c
mov ecx, 0x4cf5a8
mov edx, 0x54b6ec
call fcn.004ab120
test eax, eax
je 0x4abd7c
mov ecx, dword [0x5097e0]
push ecx
call fcn.004b433e
add esp, 4
mov ecx, 0xfffffffc
sub ecx, ebx
mov esi, 0xffffffff
sbb esi, dword [esp + 0x40]
add eax, ecx
adc edx, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
sub eax, 0x18
push 0
sbb ecx, 0
push ecx
push eax
mov eax, dword [0x5097e0]
push eax
call fcn.004b3fa3
add esp, 0x10
test eax, eax
jne 0x4abd63
mov eax, dword [0x5097e0]
push 0x4cf5b0
call fcn.004ab150
test eax, eax
je 0x4abf1c
mov eax, dword [0x5097e0]
push eax
call fcn.004b433e
mov ecx, dword [0x5097e0]
sub eax, 4
push ecx
mov esi, 0
sbb edx, esi
push 1
mov dword [esp + 0x24], edx
lea edx, [esp + 0x50]
push 0x10
push edx
mov dword [esp + 0x28], eax
call fcn.004b3d1a
add esp, 0x14
cmp eax, 1
mov eax, dword [0x5097e0]
je 0x4abaa7
push eax
call fcn.004b3dae
mov eax, dword [0x5097e4]
add esp, 4
push eax
push esi
push eax
push esi
mov ecx, 0x508304
mov dword [0x5097e0], esi
call fcn.0042d2d0
lea eax, [esi + 0xb]
pop esi
pop ebx
pop edi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
push 0x4cf5c0
call fcn.004ab150
test eax, eax
jne 0x4abaf5
mov ecx, dword [0x5097e0]
push ecx
call fcn.004b3dae
mov eax, dword [0x5097e4]
add esp, 4
push eax
push esi
push eax
push esi
mov ecx, 0x508304
mov dword [0x5097e0], esi
call fcn.0042d2d0
pop esi
pop ebx
pop edi
mov eax, 0xb
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
movzx edx, byte [esp + 0x47]
movzx ecx, byte [esp + 0x45]
movzx eax, byte [esp + 0x46]
shl dx, 8
shl cx, 8
movzx esi, dx
or esi, eax
movzx eax, byte [esp + 0x44]
movzx edx, cx
movzx ecx, byte [esp + 0x4f]
shl esi, 0x10
or esi, edx
movzx edx, byte [esp + 0x4e]
or esi, eax
movzx eax, byte [esp + 0x4d]
shl ax, 8
shl cx, 8
movzx ebx, cx
movzx ecx, ax
movzx eax, byte [esp + 0x4b]
or ebx, edx
movzx edx, byte [esp + 0x4c]
mov edi, dword [esp + 0x1c]
shl ax, 8
shl ebx, 0x10
or ebx, ecx
movzx ecx, ax
movzx eax, byte [esp + 0x49]
or ebx, edx
movzx edx, byte [esp + 0x4a]
shl ax, 8
or ecx, edx
movzx edx, ax
movzx eax, byte [esp + 0x48]
shl ecx, 0x10
or ecx, edx
or ecx, eax
movzx eax, byte [esp + 0x53]
xor edx, edx
xor ebp, ebp
or ebx, edx
movzx edx, byte [esp + 0x51]
or ebp, ecx
movzx ecx, byte [esp + 0x52]
add ebp, edi
adc ebx, dword [esp + 0x20]
shl ax, 8
movzx eax, ax
or eax, ecx
shl dx, 8
shl eax, 0x10
movzx ecx, dx
movzx edx, byte [esp + 0x50]
or eax, ecx
or eax, edx
mov dword [0x5097f4], eax
dec eax
mov dword [0x5097f8], eax
cmp esi, eax
je 0x4abc4e
mov eax, dword [0x5097e0]
push eax
call fcn.004b3dae
mov ecx, dword [0x5097e4]
add esp, 4
push esi
push ecx
mov dword [0x5097e0], 0
call fcn.00438540
mov edi, eax
push 0x4c9110
push edi
call fcn.004b3ef0
add esp, 8
mov dword [0x5097e0], eax
test eax, eax
jne 0x4abc41
push esi
call fcn.00438e90
test eax, eax
jne 0x4ac821
push edi
call fcn.004b1201
mov edx, dword [0x5097e4]
add esp, 4
push esi
push edx
call fcn.00438540
mov edi, eax
push 0x4c9110
push edi
call fcn.004b3ef0
add esp, 8
mov dword [0x5097e0], eax
test eax, eax
je 0x4abc04
push edi
call fcn.004b1201
mov edi, dword [esp + 0x20]
add esp, 4
mov eax, dword [0x5097e0]
push 0
push ebx
push ebp
push eax
mov dword [0x5097f8], esi
call fcn.004b3fa3
add esp, 0x10
test eax, eax
jne 0x4abd63
mov eax, dword [0x5097e0]
push 0x4cf5a8
call fcn.004ab150
test eax, eax
jne 0x4abcfc
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
sub eax, 0x50
sbb ecx, 0
push ecx
push eax
mov eax, dword [0x5097e0]
push eax
call fcn.004b3fa3
add esp, 0x10
test eax, eax
jne 0x4abd63
mov esi, dword [0x5097e0]
call fcn.004aaff0
test eax, eax
je 0x4abd63
mov ecx, 0x4cf5a8
mov edx, 0x54b6ec
call fcn.004ab120
test eax, eax
je 0x4abd63
mov eax, dword [0x5097e0]
push eax
call fcn.004b433e
add esp, 4
mov edi, eax
mov ecx, 0xfffffffc
sub ecx, ebp
mov eax, 0xffffffff
sbb eax, ebx
add edi, ecx
adc edx, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edx
mov eax, dword [0x5097e0]
push eax
push 0x34
lea ecx, [esp + 0x4c]
push 1
push ecx
call fcn.004b3d1a
add esp, 0x10
cmp eax, 0x34
jae 0x4abdae
push 0x2ad
call fcn.004671c0
mov edx, dword [0x5097e4]
push eax
push edx
call fcn.0049ac10
mov eax, dword [0x5097e0]
push eax
call fcn.004b3dae
add esp, 0xc
pop esi
pop ebx
pop edi
mov dword [0x5097e0], 0
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
mov ecx, dword [0x5097e0]
push ecx
call fcn.004b3dae
add esp, 4
mov dword [0x5097e0], 0
push 0x2ad
call fcn.004671c0
mov edx, dword [0x5097e4]
push eax
push edx
call fcn.0049ac10
add esp, 8
pop esi
pop ebx
pop edi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
movzx ecx, byte [esp + 0x57]
movzx eax, byte [esp + 0x55]
movzx edx, byte [esp + 0x56]
shl cx, 8
shl ax, 8
movzx ebp, cx
or ebp, edx
movzx edx, byte [esp + 0x54]
movzx ecx, ax
movzx eax, byte [esp + 0x67]
shl ax, 8
movzx esi, byte [esp + 0x62]
shl ebp, 0x10
or ebp, ecx
or ebp, edx
movzx edx, byte [esp + 0x66]
movzx ecx, ax
movzx eax, byte [esp + 0x65]
or ecx, edx
shl ax, 8
movzx edx, ax
shl ecx, 0x10
or ecx, edx
movzx edx, byte [esp + 0x63]
movzx eax, byte [esp + 0x64]
shl dx, 8
movzx edx, dx
or edx, esi
movzx esi, byte [esp + 0x61]
or ecx, eax
shl si, 8
shl edx, 0x10
movzx esi, si
or edx, esi
movzx esi, byte [esp + 0x60]
or edx, esi
xor eax, eax
or eax, edx
movzx edx, byte [esp + 0x76]
mov dword [esp + 0x30], eax
movzx eax, byte [esp + 0x77]
xor esi, esi
or ecx, esi
movzx esi, byte [esp + 0x72]
shl ax, 8
mov dword [esp + 0x34], ecx
movzx ecx, ax
movzx eax, byte [esp + 0x75]
or ecx, edx
shl ax, 8
movzx edx, ax
movzx eax, byte [esp + 0x74]
shl ecx, 0x10
or ecx, edx
movzx edx, byte [esp + 0x73]
shl dx, 8
movzx edx, dx
or edx, esi
movzx esi, byte [esp + 0x71]
shl si, 8
movzx esi, si
or ecx, eax
shl edx, 0x10
or edx, esi
movzx esi, byte [esp + 0x70]
xor eax, eax
or edx, esi
or eax, edx
xor esi, esi
or ecx, esi
add eax, edi
adc ecx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
movzx eax, byte [esp + 0x4f]
mov dword [esp + 0x28], ecx
movzx ecx, byte [esp + 0x4e]
shl ax, 8
or ax, cx
cmp ax, 0x2e
jbe 0x4abf1c
mov edx, dword [0x5097e4]
push edx
push 0x342
call fcn.004671c0
push eax
mov eax, dword [0x5097e4]
push eax
call fcn.0049ac10
mov eax, dword [0x509778]
add esp, 0xc
cmp eax, 1
je 0x4abf1c
cmp eax, 2
je 0x4abf1c
mov ecx, dword [0x5097e0]
push ecx
call fcn.004b3dae
add esp, 4
mov dword [0x5097e0], esi
lea eax, [esi + 3]
pop esi
pop ebx
pop edi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
adc ecx, dword [esp + 0x20]
xor edi, edi
mov ebx, 1
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [0x508360], eax
mov dword [0x508364], ecx
mov dword [esp + 0x3c], edi
mov dword [0x508368], edi
mov dword [0x50836c], edi
mov dword [esp + 0x2c], ebx
cmp dword [0x5097f8], ebp
je 0x4abf77
mov edx, dword [0x5097e0]
push edx
call fcn.004b3dae
add esp, 4
mov dword [0x5097e0], edi
mov eax, dword [0x5097f4]
mov dword [0x5097f8], ebp
cmp ebp, eax
jae 0x4ac7b4
lea ebx, [ebx]
dec eax
cmp ebp, eax
jne 0x4abfc5
mov eax, dword [0x5097e4]
push eax
call fcn.004b27f4
mov esi, eax
add esp, 4
mov dword [esp + 0x10], esi
cmp esi, edi
jne 0x4abfd8
pop esi
pop ebx
pop edi
mov eax, 4
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
mov ecx, dword [0x5097e4]
push ebp
push ecx
call fcn.00438540
mov dword [esp + 0x10], eax
mov esi, eax
mov eax, dword [0x5097e0]
cmp eax, edi
jne 0x4ac077
push 0x4c9110
push esi
call fcn.004b3ef0
add esp, 8
mov dword [0x5097e0], eax
cmp eax, edi
jne 0x4ac077
lea esp, [esp]
mov edx, dword [0x5097f8]
push edx
call fcn.00438e90
cmp eax, 9
je 0x4ac811
cmp eax, 3
je 0x4ac16e
mov eax, dword [0x5097f4]
lea ecx, [eax - 1]
mov eax, dword [0x5097f8]
cmp eax, ecx
jne 0x4ac04c
mov edx, dword [0x5097e4]
push edx
call fcn.004b27f4
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, edi
je 0x4abfad
jmp 0x4ac05c
push eax
mov eax, dword [0x508354]
push eax
call fcn.00438540
mov dword [esp + 0x10], eax
push 0x4c9110
push eax
call fcn.004b3ef0
add esp, 8
mov dword [0x5097e0], eax
cmp eax, edi
je 0x4ac000
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x38], edi
jne 0x4ac0ac
cmp dword [esp + 0x2c], edi
je 0x4ac0b0
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push edi
push ecx
push edx
push eax
call fcn.004b3fa3
add esp, 0x10
test eax, eax
mov eax, dword [0x5097e0]
jne 0x4ac839
mov dword [esp + 0x14], 0x509878
mov dword [esp + 0x2c], edi
mov esi, eax
call fcn.004aaff0
test eax, eax
je 0x4ac768
mov ebp, dword [esp + 0x14]
mov eax, dword [0x5097e0]
push eax
call fcn.004b433e
mov dword [0x509804], edx
add esp, 4
mov ecx, 0x4cf5c0
mov edx, 0x54b6ec
mov dword [0x509800], eax
call fcn.004ab120
test eax, eax
jne 0x4ac768
mov ecx, 0x4cf5a8
mov edx, 0x54b6ec
call fcn.004ab120
test eax, eax
jne 0x4ac768
mov ecx, 0x4cf5b8
mov edx, 0x54b6ec
call fcn.004ab120
test eax, eax
jne 0x4ac177
cmp dword [0x509778], ebx
je 0x4ac755
mov ecx, dword [0x5097e0]
push ecx
call fcn.004b3dae
add esp, 4
push 0x2ad
mov dword [0x5097e0], edi
call fcn.004671c0
mov edx, dword [esp + 0x10]
push eax
push edx
call fcn.0049ac10
add esp, 8
pop esi
pop ebx
pop edi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
mov dword [esp + 0x38], ebx
jmp 0x4ac799
mov ecx, dword [0x5097e0]
push ecx
push ebx
lea edx, [esp + 0x4c]
push 0x2a
push edx
call fcn.004b3d1a
add esp, 0x10
cmp eax, ebx
je 0x4ac1e8
cmp dword [0x509778], ebx
je 0x4ac755
mov eax, dword [0x5097e0]
push eax
call fcn.004b3862
add esp, 4
mov esi, eax
neg esi
sbb esi, esi
and esi, 9
add esi, 2
cmp esi, 0xb
jne 0x4ac8a7
mov eax, dword [esp + 0x10]
push eax
push edi
push eax
push edi
mov ecx, 0x508304
call fcn.0042d2d0
mov eax, esi
pop esi
pop ebx
pop edi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
push 0x80
call fcn.004b1137
mov esi, eax
add esp, 4
cmp esi, edi
je 0x4abfad
movzx eax, byte [esp + 0x45]
movzx ecx, byte [esp + 0x44]
shl ax, 8
or ax, cx
mov word [esi], ax
movzx edx, byte [esp + 0x47]
movzx eax, byte [esp + 0x46]
shl dx, 8
or dx, ax
mov word [esi + 2], dx
movzx ecx, byte [esp + 0x49]
movzx edx, byte [esp + 0x48]
shl cx, 8
or cx, dx
mov word [esi + 4], cx
movzx eax, byte [esp + 0x4b]
movzx ecx, byte [esp + 0x4a]
shl ax, 8
or ax, cx
mov word [esi + 6], ax
movzx edx, byte [esp + 0x4f]
movzx ecx, byte [esp + 0x4e]
shl dx, 8
movzx eax, dx
movzx edx, byte [esp + 0x4d]
or eax, ecx
shl dx, 8
movzx ecx, dx
movzx edx, byte [esp + 0x4c]
shl eax, 0x10
or eax, ecx
or eax, edx
mov dword [esi + 8], eax
movzx eax, byte [esp + 0x53]
movzx edx, byte [esp + 0x52]
shl ax, 8
movzx ecx, ax
movzx eax, byte [esp + 0x51]
or ecx, edx
shl ax, 8
movzx edx, ax
movzx eax, byte [esp + 0x50]
shl ecx, 0x10
or ecx, edx
or ecx, eax
mov dword [esi + 0xc], ecx
movzx ecx, byte [esp + 0x57]
movzx eax, byte [esp + 0x56]
shl cx, 8
movzx edx, cx
movzx ecx, byte [esp + 0x55]
or edx, eax
shl cx, 8
shl edx, 0x10
movzx eax, cx
movzx ecx, byte [esp + 0x54]
or edx, eax
or edx, ecx
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], edi
movzx edx, byte [esp + 0x5b]
movzx ecx, byte [esp + 0x5a]
shl dx, 8
movzx eax, dx
movzx edx, byte [esp + 0x59]
or eax, ecx
shl dx, 8
movzx ecx, dx
movzx edx, byte [esp + 0x58]
shl eax, 0x10
or eax, ecx
or eax, edx
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edi
movzx eax, byte [esp + 0x5d]
movzx ecx, byte [esp + 0x5c]
shl ax, 8
or ax, cx
mov word [esi + 0x20], ax
movzx edx, byte [esp + 0x5f]
shl dx, 8
movzx eax, byte [esp + 0x5e]
or dx, ax
mov word [esi + 0x24], dx
movzx ecx, byte [esp + 0x61]
movzx edx, byte [esp + 0x60]
shl cx, 8
or cx, dx
mov word [esi + 0x26], cx
movzx eax, byte [esp + 0x63]
movzx edx, byte [esp + 0x62]
shl ax, 8
movzx ecx, ax
or ecx, edx
mov dword [esi + 0x28], ecx
movzx eax, byte [esp + 0x65]
movzx ecx, byte [esp + 0x64]
shl ax, 8
or ax, cx
mov word [esi + 0x2c], ax
movzx edx, byte [esp + 0x69]
movzx ecx, byte [esp + 0x68]
shl dx, 8
movzx eax, dx
movzx edx, byte [esp + 0x67]
or eax, ecx
shl eax, 0x10
shl dx, 8
movzx ecx, dx
movzx edx, byte [esp + 0x66]
or eax, ecx
or eax, edx
mov dword [esi + 0x38], eax
movzx eax, byte [esp + 0x6d]
movzx edx, byte [esp + 0x6c]
shl ax, 8
movzx ecx, ax
movzx eax, byte [esp + 0x6b]
or ecx, edx
shl ax, 8
movzx edx, ax
movzx eax, byte [esp + 0x6a]
shl ecx, 0x10
or ecx, edx
or ecx, eax
movzx eax, word [esi + 0x20]
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], edi
mov dword [esi + 0x48], edi
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edi
mov dword [esi + 0x4c], edi
mov dword [esi + 0x3c], edi
mov dword [esi + 0x50], edi
mov dword [esi + 0x54], edi
mov dword [esi + 0x5c], edi
mov dword [esi + 0x58], edi
cmp ax, di
jne 0x4ac439
cmp dword [0x509778], ebx
je 0x4ac755
push 0x2ad
call fcn.004671c0
mov ecx, dword [esp + 0x10]
push eax
push ecx
call fcn.0049ac10
add esp, 8
pop esi
pop ebx
pop edi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
movzx ecx, ax
add ecx, ebx
push ecx
call fcn.004b1137
add esp, 4
mov dword [esi + 0x4c], eax
cmp eax, edi
je 0x4abfad
movzx eax, word [esi + 0x24]
cmp ax, di
je 0x4ac472
movzx edx, ax
push edx
call fcn.004b1137
add esp, 4
mov dword [esi + 0x44], eax
cmp eax, edi
je 0x4abfad
movzx eax, word [esi + 0x26]
cmp ax, di
je 0x4ac492
movzx eax, ax
push eax
call fcn.004b1137
add esp, 4
mov dword [esi + 0x48], eax
cmp eax, edi
je 0x4abfad
mov ecx, dword [0x5097e0]
movzx edx, word [esi + 0x20]
mov eax, dword [esi + 0x4c]
push ecx
push ebx
push edx
push eax
call fcn.004b3d1a
add esp, 0x10
cmp eax, ebx
jne 0x4ac749
movzx eax, word [esi + 0x24]
cmp ax, di
je 0x4ac4dc
mov ecx, dword [0x5097e0]
push ecx
movzx edx, ax
mov eax, dword [esi + 0x44]
push ebx
push edx
push eax
call fcn.004b3d1a
add esp, 0x10
cmp eax, ebx
jne 0x4ac749
movzx eax, word [esi + 0x26]
cmp ax, di
je 0x4ac505
mov ecx, dword [0x5097e0]
push ecx
movzx edx, ax
mov eax, dword [esi + 0x48]
push ebx
push edx
push eax
call fcn.004b3d1a
add esp, 0x10
cmp eax, ebx
jne 0x4ac749
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 0x4c]
mov eax, 0x800
mov byte [ecx + edx], 0
test word [esi + 4], ax
jne 0x4ac541
push esi
call fcn.004aa0d0
cmp dword [esi + 0x58], edi
jne 0x4ac541
movzx ecx, byte [esi + 1]
mov edx, dword [esi + 0x4c]
push ecx
push edx
call fcn.004a9bd0
test al, al
je 0x4ac541
mov eax, 0x800
or word [esi + 4], ax
mov ecx, 0x800
test word [esi + 4], cx
je 0x4ac57e
mov edx, dword [esi + 0x4c]
push edx
call fcn.004c23c7
add esp, 4
mov dword [esi + 0x58], eax
test eax, eax
je 0x4abfad
push eax
call fcn.00438bf0
mov edi, eax
test edi, edi
je 0x4ac57e
mov eax, dword [esi + 0x4c]
push eax
call fcn.004b1201
add esp, 4
mov dword [esi + 0x4c], edi
movzx eax, word [esi]
movzx ecx, al
shr ax, 8
xor edi, edi
cmp ax, di
jne 0x4ac5a7
test dword [esi + 0x38], 0xffff0000
je 0x4ac5b8
cmp ecx, 0x19
je 0x4ac5a7
cmp ecx, 0x1a
je 0x4ac5a7
cmp ecx, 0x28
jne 0x4ac5b8
cmp ax, 6
je 0x4ac5b8
cmp ax, 0xb
jne 0x4ac5c3
cmp ecx, 0x32
jne 0x4ac5c3
mov eax, dword [esi + 0x4c]
push eax
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
movzx eax, word [esi]
movzx ecx, al
shr ax, 8
cmp ax, di
jne 0x4ac5ea
test dword [esi + 0x38], 0xffff0000
je 0x4ac5fb
cmp ecx, 0x19
je 0x4ac5ea
cmp ecx, 0x1a
je 0x4ac5ea
cmp ecx, 0x28
jne 0x4ac5fb
cmp ax, 6
je 0x4ac5fb
cmp ax, 0xb
jne 0x4ac606
cmp ecx, 0x32
jne 0x4ac606
mov eax, dword [esi + 0x48]
push eax
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
call fcn.004aa310
mov edx, 1
cmp dword [0x509778], edx
jne 0x4ac620
cmp dword [0x5097f4], edx
je 0x4ac628
cmp dword [0x509780], edi
je 0x4ac636
mov ecx, dword [esp + 0x1c]
add dword [esi + 0x30], ecx
mov eax, dword [esp + 0x20]
adc dword [esi + 0x34], eax
cmp dword [esi + 0x28], edi
jne 0x4ac67c
cmp dword [esp + 0x3c], edi
je 0x4ac659
mov ecx, dword [esi + 0x34]
cmp ecx, dword [0x50836c]
ja 0x4ac67c
jb 0x4ac659
mov eax, dword [esi + 0x30]
cmp eax, dword [0x508368]
jae 0x4ac67c
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
cmp eax, dword [esp + 0x28]
ja 0x4ac67c
jb 0x4ac66d
cmp ecx, dword [esp + 0x24]
jae 0x4ac67c
mov dword [0x508368], ecx
mov dword [0x50836c], eax
mov dword [esp + 0x3c], edx
add dword [0x508350], edx
mov ecx, dword [esi + 0x4c]
push ecx
mov dword [esi + 0x6c], edi
mov dword [esi + 0x70], edi
call fcn.00482c30
mov dword [esi + 0x50], eax
cmp eax, edi
je 0x4abfad
push eax
call fcn.004c23c7
add esp, 4
mov dword [esi + 0x3c], eax
cmp eax, edi
je 0x4abfad
mov edx, dword [esi + 0x4c]
push edx
call fcn.004c23c7
add esp, 4
mov dword [esi + 0x54], eax
cmp eax, edi
jne 0x4ac6ca
push 4
call fcn.004a78d0
mov eax, dword [esi + 0x58]
mov dword [esi + 0x60], edi
mov dword [esi + 0x64], edi
mov dword [esi + 0x68], edi
cmp eax, edi
je 0x4ac717
push eax
call fcn.00438bf0
cmp eax, edi
jne 0x4ac6f8
mov eax, dword [esi + 0x4c]
push eax
call fcn.004c23c7
add esp, 4
cmp eax, edi
je 0x4abfad
push eax
call fcn.004c23c7
add esp, 4
mov dword [esi + 0x5c], eax
cmp eax, edi
je 0x4abfad
mov ecx, dword [esi + 0x58]
push ecx
call fcn.00482920
jmp 0x4ac720
mov edx, dword [esi + 0x4c]
push edx
call fcn.004828b0
push eax
mov dword [esi + 0x64], eax
call fcn.00482c80
mov dword [esi + 0x68], eax
cmp eax, edi
je 0x4abfad
lea eax, [esi + 0x78]
mov dword [ebp], esi
mov dword [eax], edi
mov ebp, eax
xor edi, edi
mov dword [esp + 0x14], ebp
lea ebx, [edi + 1]
jmp 0x4ac755
cmp dword [0x509778], ebx
jne 0x4ac875
mov esi, dword [0x5097e0]
call fcn.004aaff0
test eax, eax
jne 0x4ac0c3
mov eax, dword [0x5097e0]
push eax
call fcn.004b3dae
mov ecx, dword [esp + 0x14]
push ecx
mov dword [0x5097e0], edi
call fcn.004b1201
add esp, 8
mov ecx, 0x4cf5b8
mov edx, 0x54b6ec
call fcn.004ab120
test eax, eax
je 0x4ac7b4
mov ebp, dword [0x5097f8]
mov eax, dword [0x5097f4]
add ebp, ebx
mov dword [0x5097f8], ebp
cmp ebp, eax
jb 0x4abf90
mov eax, dword [0x508350]
mov ecx, dword [esp + 0x30]
xor edx, edx
cmp eax, ecx
jne 0x4ac7cd
cmp edx, dword [esp + 0x34]
je 0x4ab52c
movzx eax, ax
xor edx, edx
cmp eax, ecx
jne 0x4ac7e0
cmp edx, dword [esp + 0x34]
je 0x4ab52c
push 0x2ad
call fcn.004671c0
push eax
mov eax, dword [0x508354]
push eax
call fcn.0049ac10
add esp, 8
pop esi
pop ebx
pop edi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
mov edx, dword [esp + 0x10]
push edx
push edi
mov ecx, 0x508304
call fcn.0042d4c0
pop esi
pop ebx
pop edi
mov eax, 9
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
push eax
call fcn.004b3dae
add esp, 4
push esi
push 0x204
mov dword [0x5097e0], edi
call fcn.004671c0
push eax
push edi
call fcn.0049ac10
add esp, 0xc
pop esi
pop ebx
pop edi
mov eax, 0xb
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret
mov edx, dword [0x5097e0]
push edx
call fcn.004b3862
add esp, 4
mov esi, eax
neg esi
sbb esi, esi
and esi, 9
add esi, 2
cmp esi, 0xb
jne 0x4ac8a7
mov eax, dword [esp + 0x10]
push eax
push edi
push eax
push edi
mov ecx, 0x508304
call fcn.0042d2d0
mov ecx, dword [esp + 0x78]
mov eax, esi
pop esi
pop ebx
pop edi
pop ebp
xor ecx, esp
call fcn.004b102c
add esp, 0x6c
ret