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

Disassembly:
mov edx, dword [esp + 8]
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, dword [esp + 0x30]
push edi
mov ebx, dword [esi + 0x160]
cmp edx, dword [esi + 0x90]
jne 0x4edb6b
lea eax, [esi + 0x11c]
lea ecx, [esi + 0x120]
jmp 0x4edb74
mov eax, dword [esi + 0x128]
lea ecx, [eax + 4]
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
mov dword [eax], ebp
mov eax, dword [esp + 0x48]
mov byte [esp + 0x44], 1
mov dword [ecx], eax
test edi, edi
jg 0x4edbc4
cmp byte [esp + 0x50], 0
je 0x4edba4
test edi, edi
jne 0x4ef6de
lea eax, [edi + 0xf]
cmp eax, 0xf
ja case.0x4edbb3.14
movzx eax, byte [eax + 0x4ef92c]
jmp dword [eax*4 + 0x4ef914]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x48], eax
neg edi
push edx
push dword [esp + 0x4c]
lea eax, [esi + 0xfc]
push ebp
push edi
push eax
mov eax, dword [eax]
call eax
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x14], ecx
sub eax, 1
je 0x4edc12
sub eax, 1
je 0x4edc12
sub eax, 0x37
je 0x4edc12
push dword [esp + 0x58]
push 0x115d
push dword [esp + 0x50]
push ebp
push edi
push esi
call fcn.004ebca0
add esp, 0x18
test al, al
je 0x4ef6ee
mov ecx, dword [esp + 0x14]
lea eax, [ecx + 1]
cmp eax, 0x3d
ja case.default.0x4edc1e
jmp dword [eax*4 + 0x4ef93c]
push dword [esp + 0x48]
push ebp
push 0
push esi
call fcn.004f1e10
add esp, 0x10
test eax, eax
jne 0x4ef90c
mov ecx, dword [esi + 0x90]
mov dword [esp + 0x38], ecx
jmp 0x4ef60a
cmp dword [esi + 0x54], 0
je 0x4edccd
push dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
lea edi, [esi + 0x19c]
push ebp
push ecx
push edi
call fcn.004f1550
add esp, 0x10
test eax, eax
je 0x4ef709
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x4edc8c
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef709
mov eax, dword [edi + 0xc]
mov byte [eax], 0
inc dword [edi + 0xc]
mov eax, dword [edi + 0x10]
mov dword [esi + 0x13c], eax
test eax, eax
je 0x4ef775
mov eax, dword [esi + 0x1a8]
mov dword [esi + 0x1ac], eax
xor al, al
mov dword [esi + 0x144], 0
mov dword [esi + 0x140], 0
jmp 0x4ef5da
mov eax, dword [esp + 0x44]
mov dword [esi + 0x140], 0
jmp 0x4ef5da
mov eax, dword [esi + 0x54]
test eax, eax
je case.default.0x4edc1e
push 1
push dword [esi + 0x144]
push dword [esi + 0x140]
push dword [esi + 0x13c]
push dword [esi + 4]
call eax
add esp, 0x14
mov dword [esi + 0x13c], 0
cmp dword [esi + 0x1a0], 0
jne 0x4edd28
mov eax, dword [esi + 0x19c]
mov dword [esi + 0x1a0], eax
jmp 0x4edd48
mov edx, dword [esi + 0x19c]
test edx, edx
je 0x4edd48
mov ecx, dword [edx]
mov eax, dword [esi + 0x1a0]
mov dword [edx], eax
mov dword [esi + 0x1a0], edx
mov edx, ecx
test ecx, ecx
jne 0x4edd32
mov dword [esi + 0x19c], 0
mov dword [esi + 0x1ac], 0
mov dword [esi + 0x1a8], 0
mov dword [esi + 0x1a4], 0
jmp 0x4ef606
push dword [esp + 0x48]
push ebp
push 1
jmp 0x4edc2c
push 0x24
push 0x52ef68
lea eax, [ebx + 0x84]
mov byte [esi + 0x1e5], 0
push eax
push esi
call fcn.004f0a40
add esp, 0x10
mov dword [esi + 0x138], eax
test eax, eax
je 0x4ef775
mov byte [ebx + 0x81], 1
cmp dword [esi + 0x54], 0
je case.0x4edc1e.14
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
push ecx
push dword [esp + 0x4c]
mov eax, dword [edi + 0x34]
push ebp
push edi
call eax
add esp, 0x10
test eax, eax
je 0x4ef74e
mov ecx, dword [edi + 0x40]
lea edi, [esi + 0x19c]
mov eax, dword [esp + 0x48]
sub eax, ecx
push eax
lea eax, [ecx + ebp]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
push edi
call fcn.004f1550
add esp, 0x10
test eax, eax
je 0x4ef775
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x4ede20
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef775
mov eax, dword [edi + 0xc]
mov byte [eax], 0
inc dword [edi + 0xc]
mov edi, dword [edi + 0x10]
test edi, edi
je 0x4ef775
push edi
call fcn.004f0e90
mov eax, dword [esi + 0x1a8]
add esp, 4
mov dword [esi + 0x144], edi
mov edi, dword [esp + 0x38]
mov dword [esi + 0x1ac], eax
mov byte [esp + 0x44], 0
jmp 0x4ede79
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
push ecx
push dword [esp + 0x4c]
mov eax, dword [edi + 0x34]
push ebp
push edi
call eax
add esp, 0x10
test eax, eax
je 0x4ef74e
cmp byte [ebx + 0x80], 0
je 0x4ef5d6
cmp dword [esi + 0x138], 0
je 0x4ef5d6
mov ecx, dword [edi + 0x40]
lea edi, [ebx + 0x50]
mov eax, dword [esp + 0x48]
sub eax, ecx
push eax
lea eax, [ecx + ebp]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
push edi
call fcn.004f1550
add esp, 0x10
test eax, eax
je 0x4ef775
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x4eded3
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef775
mov eax, dword [edi + 0xc]
mov byte [eax], 0
inc dword [edi + 0xc]
mov edi, dword [edi + 0x10]
test edi, edi
je 0x4ef775
push edi
call fcn.004f0e90
mov eax, dword [esi + 0x138]
add esp, 4
mov dword [eax + 0x18], edi
mov eax, dword [ebx + 0x5c]
mov dword [ebx + 0x60], eax
cmp dword [esi + 0x88], 0
je 0x4ef5d6
cmp dword [esp + 0x14], 0xe
jne 0x4ef5d6
jmp 0x4ef606
cmp byte [esp + 0x54], 1
jne 0x4ef65e
mov eax, dword [esi + 0x13c]
test eax, eax
je 0x4edfb3
push 0
push dword [esi + 0x144]
push dword [esi + 0x140]
push eax
push dword [esi + 4]
mov eax, dword [esi + 0x54]
call eax
add esp, 0x14
cmp dword [esi + 0x1a0], 0
jne 0x4edf66
mov eax, dword [esi + 0x19c]
mov dword [esi + 0x1a0], eax
jmp 0x4edf86
mov edx, dword [esi + 0x19c]
test edx, edx
je 0x4edf86
mov ecx, dword [edx]
mov eax, dword [esi + 0x1a0]
mov dword [edx], eax
mov dword [esi + 0x1a0], edx
mov edx, ecx
test ecx, ecx
jne 0x4edf70
mov dword [esi + 0x19c], 0
mov dword [esi + 0x1ac], 0
mov dword [esi + 0x1a8], 0
mov dword [esi + 0x1a4], 0
mov byte [esp + 0x44], 0
cmp dword [esi + 0x140], 0
jne 0x4edfc9
cmp byte [esi + 0x1e5], 0
je 0x4ee08e
mov al, byte [ebx + 0x81]
mov byte [ebx + 0x81], 1
cmp dword [esi + 0x1e8], 0
mov byte [esp + 0x34], al
je 0x4ee087
cmp dword [esi + 0x70], 0
je 0x4ee087
push 0x24
push 0x52ef68
lea eax, [ebx + 0x84]
push eax
push esi
call fcn.004f0a40
mov ecx, eax
add esp, 0x10
test ecx, ecx
je 0x4ef775
cmp byte [esi + 0x1e5], 0
je 0x4ee024
mov eax, dword [esi + 0x164]
mov dword [ecx + 0x14], eax
mov byte [ebx + 0x83], 0
push dword [ecx + 0x18]
mov eax, dword [esi + 0x70]
push dword [ecx + 0x10]
push dword [ecx + 0x14]
push 0
push dword [esi + 0x74]
call eax
add esp, 0x14
test eax, eax
je 0x4ef7c6
cmp byte [ebx + 0x83], 0
je 0x4ee074
cmp byte [ebx + 0x82], 0
jne 0x4ee087
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x4ee087
push dword [esi + 4]
call eax
add esp, 4
test eax, eax
je 0x4ef889
jmp 0x4ee087
cmp dword [esi + 0x140], 0
jne 0x4ee087
mov al, byte [esp + 0x34]
mov byte [ebx + 0x81], al
mov byte [esi + 0x1e5], 0
mov eax, dword [esi + 0x58]
test eax, eax
je 0x4ef5d6
push dword [esi + 4]
call eax
add esp, 4
jmp 0x4ef606
push dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
push ebp
push ecx
push esi
call fcn.004f0590
add esp, 0x10
mov dword [esi + 0x154], eax
test eax, eax
je 0x4ef775
jmp case.0x4edc1e.33
push dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
push ebp
push ecx
push esi
call fcn.004efff0
add esp, 0x10
mov dword [esi + 0x158], eax
test eax, eax
je 0x4ef775
mov word [esi + 0x15c], 0
mov dword [esi + 0x148], 0
jmp case.0x4edc1e.33
mov byte [esi + 0x15c], 1
mov dword [esi + 0x148], 0x52ef6c
jmp case.0x4edc1e.33
mov byte [esi + 0x15d], 1
mov dword [esi + 0x148], 0x52ef74
jmp case.0x4edc1e.33
mov dword [esi + 0x148], 0x52ef78
jmp case.0x4edc1e.33
mov dword [esi + 0x148], 0x52ef80
jmp case.0x4edc1e.33
mov dword [esi + 0x148], 0x52ef88
jmp case.0x4edc1e.33
mov dword [esi + 0x148], 0x52ef90
jmp case.0x4edc1e.33
mov dword [esi + 0x148], 0x52ef9c
jmp case.0x4edc1e.33
mov dword [esi + 0x148], 0x52efa4
cmp byte [ebx + 0x80], 0
je case.default.0x4edc1e
cmp dword [esi + 0x84], 0
je case.default.0x4edc1e
jmp 0x4ef606
cmp byte [ebx + 0x80], 0
je case.default.0x4edc1e
cmp dword [esi + 0x84], 0
je case.default.0x4edc1e
cmp dword [esi + 0x148], 0
je 0x4ee1b7
mov eax, 0x52efbc
jmp 0x4ee1c7
cmp ecx, 0x20
mov eax, str.NOTATION_
mov ecx, 0x52efc0
cmovne eax, ecx
push eax
lea edi, [esi + 0x19c]
push edi
call fcn.004f1730
add esp, 8
test eax, eax
je 0x4ef775
push dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
push ebp
push ecx
push edi
call fcn.004f1550
add esp, 0x10
test eax, eax
je 0x4ef775
mov eax, dword [esi + 0x1ac]
mov dword [esi + 0x148], eax
jmp 0x4ef606
cmp byte [ebx + 0x80], 0
je case.default.0x4edc1e
cmp byte [esi + 0x15d], 0
mov cl, byte [esi + 0x15c]
mov edi, dword [esi + 0x158]
mov ebp, dword [esi + 0x154]
mov byte [esp + 0x34], cl
je 0x4ee262
mov edx, dword [ebp + 0xc]
xor ecx, ecx
test edx, edx
jle 0x4ee253
mov eax, dword [ebp + 0x14]
cmp edi, dword [eax]
je 0x4ee2ed
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x4ee243
cmp dword [ebp + 8], 0
jne 0x4ee262
cmp byte [edi + 9], 0
jne 0x4ee262
mov dword [ebp + 8], edi
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 0xc], eax
jne 0x4ee2c6
test eax, eax
jne 0x4ee29a
mov dword [ebp + 0x10], 8
mov eax, dword [esi + 0xc]
push 0x60
call eax
add esp, 4
mov dword [ebp + 0x14], eax
test eax, eax
jne 0x4ee2c6
pop edi
pop esi
mov dword [ebp + 0x10], 0
mov eax, 1
pop ebp
pop ebx
add esp, 0x20
ret
add eax, eax
mov dword [esp + 0x20], eax
lea eax, [eax + eax*2]
shl eax, 2
push eax
push dword [ebp + 0x14]
mov eax, dword [esi + 0x10]
call eax
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4ef775
mov eax, dword [esp + 0x20]
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], ecx
mov eax, dword [ebp + 0xc]
mov dl, byte [esp + 0x34]
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 0x14]
mov dword [eax + ecx*4], edi
mov dword [eax + ecx*4 + 8], 0
mov byte [eax + ecx*4 + 4], dl
test dl, dl
jne 0x4ee2ea
mov byte [edi + 8], 1
inc dword [ebp + 0xc]
cmp dword [esi + 0x84], 0
je case.default.0x4edc1e
mov eax, dword [esi + 0x148]
test eax, eax
je case.default.0x4edc1e
mov cl, byte [eax]
cmp cl, 0x28
je 0x4ee31e
cmp cl, 0x4e
jne 0x4ee398
cmp byte [eax + 1], 0x4f
jne 0x4ee398
mov eax, dword [esi + 0x1a8]
lea edi, [esi + 0x19c]
cmp eax, dword [esi + 0x1a4]
jne 0x4ee349
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef775
mov eax, dword [esi + 0x1a8]
mov byte [eax], 0x29
inc dword [esi + 0x1a8]
mov eax, dword [esi + 0x1a8]
cmp eax, dword [esi + 0x1a4]
jne 0x4ee371
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef775
mov eax, dword [esi + 0x1a8]
mov byte [eax], 0
inc dword [esi + 0x1a8]
mov eax, dword [esi + 0x1ac]
mov ecx, dword [esi + 0x1a8]
mov dword [esi + 0x148], eax
mov dword [esi + 0x1ac], ecx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
mov dword [edx], eax
xor eax, eax
cmp dword [esp + 0x14], 0x24
sete al
push eax
mov eax, dword [esi + 0x158]
push 0
push dword [esi + 0x148]
push dword [eax]
mov eax, dword [esi + 0x154]
push dword [eax]
mov eax, dword [esi + 0x84]
push dword [esi + 4]
call eax
mov edx, dword [esi + 0x19c]
add esp, 0x18
cmp dword [esi + 0x1a0], 0
jne 0x4ee3ed
mov dword [esi + 0x1a0], edx
jmp 0x4edd48
test edx, edx
je 0x4edd48
mov ecx, dword [edx]
mov eax, dword [esi + 0x1a0]
mov dword [edx], eax
mov dword [esi + 0x1a0], edx
mov edx, ecx
test ecx, ecx
jne 0x4ee3f5
mov dword [esi + 0x19c], ecx
mov dword [esi + 0x1ac], ecx
mov dword [esi + 0x1a8], ecx
mov dword [esi + 0x1a4], ecx
jmp 0x4ef606
cmp byte [ebx + 0x80], 0
je case.default.0x4edc1e
mov ecx, dword [esp + 0x38]
lea edi, [ebx + 0x50]
mov eax, dword [esp + 0x48]
mov dl, byte [esi + 0x15c]
push 2
mov ecx, dword [ecx + 0x40]
sub eax, ecx
push edi
push eax
mov byte [esp + 0x28], dl
lea eax, [ecx + ebp]
push eax
push dword [esp + 0x2c]
push dword [esp + 0x4c]
push esi
call fcn.004ec270
add esp, 0x1c
test eax, eax
jne 0x4ef90c
cmp byte [esp + 0x1c], al
jne 0x4ee48c
mov ecx, dword [edi + 0xc]
mov eax, ecx
sub eax, dword [edi + 0x10]
je 0x4ee48c
cmp byte [ecx - 1], 0x20
lea eax, [ecx - 1]
jne 0x4ee48c
mov dword [edi + 0xc], eax
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x4ee4a5
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef775
mov eax, dword [edi + 0xc]
mov byte [eax], 0
inc dword [edi + 0xc]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ebx + 0x5c]
mov dword [ebx + 0x60], eax
mov al, byte [esi + 0x15c]
mov edi, dword [esi + 0x158]
mov ebp, dword [esi + 0x154]
mov dword [esp + 0x20], ecx
mov byte [esp + 0x34], al
test ecx, ecx
je 0x4ee4f1
mov edx, dword [ebp + 0xc]
xor ecx, ecx
test edx, edx
jle 0x4ee4f1
mov eax, dword [ebp + 0x14]
cmp edi, dword [eax]
je 0x4ee56e
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x4ee4e1
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 0xc], eax
jne 0x4ee547
test eax, eax
jne 0x4ee51b
mov dword [ebp + 0x10], 8
mov eax, dword [esi + 0xc]
push 0x60
call eax
add esp, 4
mov dword [ebp + 0x14], eax
test eax, eax
je 0x4ee286
jmp 0x4ee547
add eax, eax
mov dword [esp + 0x24], eax
lea eax, [eax + eax*2]
shl eax, 2
push eax
push dword [ebp + 0x14]
mov eax, dword [esi + 0x10]
call eax
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4ef775
mov eax, dword [esp + 0x24]
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 0x14]
mov dword [eax + ecx*4 + 8], edx
mov dl, byte [esp + 0x34]
mov dword [eax + ecx*4], edi
mov byte [eax + ecx*4 + 4], dl
test dl, dl
jne 0x4ee56b
mov byte [edi + 8], 1
inc dword [ebp + 0xc]
cmp dword [esi + 0x84], 0
je case.default.0x4edc1e
mov eax, dword [esi + 0x148]
test eax, eax
je case.default.0x4edc1e
mov cl, byte [eax]
cmp cl, 0x28
je 0x4ee5a3
cmp cl, 0x4e
jne 0x4ee61d
cmp byte [eax + 1], 0x4f
jne 0x4ee61d
mov eax, dword [esi + 0x1a8]
lea edi, [esi + 0x19c]
cmp eax, dword [esi + 0x1a4]
jne 0x4ee5ce
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef775
mov eax, dword [esi + 0x1a8]
mov byte [eax], 0x29
inc dword [esi + 0x1a8]
mov eax, dword [esi + 0x1a8]
cmp eax, dword [esi + 0x1a4]
jne 0x4ee5f6
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef775
mov eax, dword [esi + 0x1a8]
mov byte [eax], 0
inc dword [esi + 0x1a8]
mov eax, dword [esi + 0x1ac]
mov ecx, dword [esi + 0x1a8]
mov dword [esi + 0x148], eax
mov dword [esi + 0x1ac], ecx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
mov dword [edx], eax
xor eax, eax
cmp dword [esp + 0x14], 0x26
sete al
push eax
push dword [esp + 0x24]
mov eax, dword [esi + 0x158]
push dword [esi + 0x148]
push dword [eax]
mov eax, dword [esi + 0x154]
push dword [eax]
mov eax, dword [esi + 0x84]
push dword [esi + 4]
call eax
mov edx, dword [esi + 0x19c]
add esp, 0x18
cmp dword [esi + 0x1a0], 0
jne 0x4ee674
mov dword [esi + 0x1a0], edx
jmp 0x4edd48
test edx, edx
je 0x4edd48
nop dword [eax]
mov ecx, dword [edx]
mov eax, dword [esi + 0x1a0]
mov dword [edx], eax
mov dword [esi + 0x1a0], edx
mov edx, ecx
test ecx, ecx
jne 0x4ee680
mov dword [esi + 0x19c], ecx
mov dword [esi + 0x1ac], ecx
mov dword [esi + 0x1a8], ecx
mov dword [esi + 0x1a4], ecx
jmp 0x4ef606
cmp byte [ebx + 0x80], 0
je case.default.0x4edc1e
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x48]
push 2
mov ecx, dword [edx + 0x40]
sub eax, ecx
push eax
lea eax, [ecx + ebp]
push eax
push edx
push esi
call fcn.004f3660
mov ecx, dword [esi + 0x138]
add esp, 0x14
mov edi, eax
mov eax, dword [ebx + 0x78]
test ecx, ecx
je 0x4ee748
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x138]
mov ecx, dword [ebx + 0x74]
sub ecx, dword [ebx + 0x78]
mov dword [eax + 8], ecx
mov eax, dword [ebx + 0x74]
mov dword [ebx + 0x78], eax
cmp dword [esi + 0x88], 0
je 0x4ee74b
mov edx, dword [esp + 0x10]
push 0
push 0
push 0
mov dword [edx], ebp
mov ecx, dword [esi + 0x138]
push dword [esi + 0x164]
push dword [ecx + 8]
movzx eax, byte [ecx + 0x21]
push dword [ecx + 4]
push eax
push dword [ecx]
mov eax, dword [esi + 0x88]
push dword [esi + 4]
call eax
add esp, 0x24
mov byte [esp + 0x44], 0
jmp 0x4ee74b
mov dword [ebx + 0x74], eax
test edi, edi
je 0x4ef5d6
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
mov byte [esi + 0x1e5], 0
mov byte [ebx + 0x81], 1
cmp dword [esi + 0x54], 0
je 0x4ee7e1
mov edx, dword [esp + 0x38]
lea edi, [esi + 0x19c]
mov eax, dword [esp + 0x48]
mov ecx, dword [edx + 0x40]
sub eax, ecx
push eax
lea eax, [ecx + ebp]
push eax
push edx
push edi
call fcn.004f1550
add esp, 0x10
test eax, eax
je 0x4ef720
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x4ee7b4
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef720
mov eax, dword [edi + 0xc]
mov byte [eax], 0
inc dword [edi + 0xc]
mov eax, dword [edi + 0x10]
mov dword [esi + 0x140], eax
test eax, eax
je 0x4ef775
mov eax, dword [esi + 0x1a8]
mov dword [esi + 0x1ac], eax
mov byte [esp + 0x44], 0
jmp 0x4ee7eb
mov dword [esi + 0x140], 0x52ef68
cmp byte [ebx + 0x82], 0
jne 0x4ee814
cmp dword [esi + 0x1e8], 0
jne 0x4ee814
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x4ee814
push dword [esi + 4]
call eax
add esp, 4
test eax, eax
je 0x4ef889
cmp dword [esi + 0x138], 0
jne case.0x4edc1e.13
push 0x24
push 0x52ef68
lea eax, [ebx + 0x84]
push eax
push esi
call fcn.004f0a40
add esp, 0x10
mov dword [esi + 0x138], eax
test eax, eax
je 0x4ef775
mov dword [eax + 0x18], 0
cmp byte [ebx + 0x80], 0
je 0x4ef5d6
cmp dword [esi + 0x138], 0
je 0x4ef5d6
mov edx, dword [esp + 0x38]
lea edi, [ebx + 0x50]
mov eax, dword [esp + 0x48]
mov ecx, dword [edx + 0x40]
sub eax, ecx
push eax
lea eax, [ecx + ebp]
push eax
push edx
push edi
call fcn.004f1550
add esp, 0x10
test eax, eax
jne 0x4ee88a
xor ecx, ecx
jmp 0x4ee8af
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x4ee8a3
push edi
call fcn.004f1ae0
add esp, 4
test al, al
jne 0x4ee8a3
xor ecx, ecx
jmp 0x4ee8af
mov eax, dword [edi + 0xc]
mov byte [eax], 0
inc dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
mov eax, dword [esi + 0x138]
mov dword [eax + 0x10], ecx
mov ecx, dword [esi + 0x138]
cmp dword [ecx + 0x10], 0
je 0x4ef775
mov eax, dword [esi + 0x164]
mov dword [ecx + 0x14], eax
mov eax, dword [ebx + 0x5c]
mov dword [ebx + 0x60], eax
cmp dword [esi + 0x88], 0
je 0x4ef5d6
cmp dword [esp + 0x14], 0xd
jne 0x4ef5d6
jmp 0x4ef606
cmp byte [ebx + 0x80], 0
je case.default.0x4edc1e
cmp dword [esi + 0x138], 0
je case.default.0x4edc1e
cmp dword [esi + 0x88], 0
je case.default.0x4edc1e
mov edx, dword [esp + 0x10]
push 0
mov dword [edx], ebp
mov ecx, dword [esi + 0x138]
push dword [ecx + 0x18]
movzx eax, byte [ecx + 0x21]
push dword [ecx + 0x10]
push dword [ecx + 0x14]
push 0
push 0
push eax
push dword [ecx]
mov eax, dword [esi + 0x88]
push dword [esi + 4]
call eax
add esp, 0x24
jmp 0x4ef606
cmp byte [ebx + 0x80], 0
je case.default.0x4edc1e
cmp dword [esi + 0x138], 0
je case.default.0x4edc1e
push dword [esp + 0x48]
lea edi, [ebx + 0x50]
push ebp
push dword [esp + 0x40]
push edi
call fcn.004f1550
add esp, 0x10
test eax, eax
jne 0x4ee987
xor ecx, ecx
jmp 0x4ee9ac
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x4ee9a0
push edi
call fcn.004f1ae0
add esp, 4
test al, al
jne 0x4ee9a0
xor ecx, ecx
jmp 0x4ee9ac
mov eax, dword [edi + 0xc]
mov byte [eax], 0
inc dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
mov eax, dword [esi + 0x138]
mov dword [eax + 0x1c], ecx
mov eax, dword [esi + 0x138]
cmp dword [eax + 0x1c], 0
je 0x4ef775
mov eax, dword [ebx + 0x5c]
mov dword [ebx + 0x60], eax
cmp dword [esi + 0x5c], 0
je 0x4ee9fb
mov edx, dword [esp + 0x10]
mov dword [edx], ebp
mov eax, dword [esi + 0x138]
push dword [eax + 0x1c]
push dword [eax + 0x18]
push dword [eax + 0x10]
push dword [eax + 0x14]
push dword [eax]
mov eax, dword [esi + 0x5c]
push dword [esi + 4]
call eax
add esp, 0x18
jmp 0x4ef606
cmp dword [esi + 0x88], 0
je case.default.0x4edc1e
mov edx, dword [esp + 0x10]
mov dword [edx], ebp
mov eax, dword [esi + 0x138]
push dword [eax + 0x1c]
push dword [eax + 0x18]
push dword [eax + 0x10]
push dword [eax + 0x14]
push 0
push 0
push 0
push dword [eax]
mov eax, dword [esi + 0x88]
push dword [esi + 4]
call eax
add esp, 0x24
jmp 0x4ef606
push dword [esp + 0x48]
mov eax, dword [esp + 0x3c]
push ebp
push eax
mov eax, dword [eax + 0x2c]
call eax
add esp, 0xc
test eax, eax
je 0x4eea60
mov dword [esi + 0x138], 0
jmp case.default.0x4edc1e
cmp byte [ebx + 0x80], 0
je 0x4eeb3c
push dword [esp + 0x48]
lea edi, [ebx + 0x50]
push ebp
mov ebp, dword [esp + 0x40]
push ebp
push edi
call fcn.004f1550
add esp, 0x10
test eax, eax
je 0x4ef775
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x4eeaa4
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef775
mov eax, dword [edi + 0xc]
mov byte [eax], 0
inc dword [edi + 0xc]
mov edi, dword [edi + 0x10]
test edi, edi
je 0x4ef775
push 0x24
push edi
push ebx
push esi
call fcn.004f0a40
add esp, 0x10
mov dword [esi + 0x138], eax
test eax, eax
je 0x4ef775
cmp dword [eax], edi
je 0x4eeaf0
mov eax, dword [ebx + 0x60]
mov dword [ebx + 0x5c], eax
mov dword [esi + 0x138], 0
mov edi, dword [esp + 0x3c]
jmp 0x4ef5f1
mov eax, dword [ebx + 0x5c]
mov dword [ebx + 0x60], eax
mov eax, dword [esi + 0x138]
mov dword [eax + 0x18], 0
mov eax, dword [esi + 0x138]
mov byte [eax + 0x21], 0
cmp dword [esi + 0x1d8], 0
jne 0x4eeb23
cmp dword [esi + 0x128], 0
jne 0x4eeb23
mov cl, 1
jmp 0x4eeb25
xor cl, cl
mov eax, dword [esi + 0x138]
mov byte [eax + 0x22], cl
cmp dword [esi + 0x88], 0
je 0x4eeae7
jmp 0x4ef606
mov eax, dword [ebx + 0x60]
mov dword [ebx + 0x5c], eax
mov dword [esi + 0x138], 0
jmp case.default.0x4edc1e
cmp byte [ebx + 0x80], 0
je 0x4eeb3c
push dword [esp + 0x48]
lea edi, [ebx + 0x50]
push ebp
mov ebp, dword [esp + 0x40]
push ebp
push edi
call fcn.004f1550
add esp, 0x10
test eax, eax
je 0x4ef775
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x4eeb91
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef775
mov eax, dword [edi + 0xc]
mov byte [eax], 0
inc dword [edi + 0xc]
mov edi, dword [edi + 0x10]
test edi, edi
je 0x4ef775
push 0x24
push edi
lea eax, [ebx + 0x84]
push eax
push esi
call fcn.004f0a40
add esp, 0x10
mov dword [esi + 0x138], eax
test eax, eax
je 0x4ef775
cmp dword [eax], edi
jne 0x4eead7
mov eax, dword [ebx + 0x5c]
mov dword [ebx + 0x60], eax
mov eax, dword [esi + 0x138]
mov dword [eax + 0x18], 0
mov eax, dword [esi + 0x138]
mov byte [eax + 0x21], 1
cmp dword [esi + 0x1d8], 0
jne 0x4eeb23
cmp dword [esi + 0x128], 0
jne 0x4eeb23
mov cl, 1
jmp 0x4eeb25
cmp dword [esi + 0x60], 0
mov dword [esi + 0x150], 0
mov dword [esi + 0x14c], 0
je case.default.0x4edc1e
push dword [esp + 0x48]
lea edi, [esi + 0x19c]
push ebp
push dword [esp + 0x40]
push edi
call fcn.004f1550
add esp, 0x10
test eax, eax
je 0x4ef737
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x4eec63
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef737
mov eax, dword [edi + 0xc]
mov byte [eax], 0
inc dword [edi + 0xc]
mov eax, dword [edi + 0x10]
mov dword [esi + 0x14c], eax
test eax, eax
je 0x4ef775
mov eax, dword [esi + 0x1a8]
mov dword [esi + 0x1ac], eax
jmp 0x4ef606
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
push ecx
push dword [esp + 0x4c]
mov eax, dword [edi + 0x34]
push ebp
push edi
call eax
add esp, 0x10
test eax, eax
je 0x4ef74e
cmp dword [esi + 0x14c], 0
je case.default.0x4edc1e
mov ecx, dword [edi + 0x40]
lea edi, [esi + 0x19c]
mov eax, dword [esp + 0x48]
sub eax, ecx
push eax
lea eax, [ecx + ebp]
push eax
push dword [esp + 0x40]
push edi
call fcn.004f1550
add esp, 0x10
test eax, eax
je 0x4ef775
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x4eecfc
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef775
mov eax, dword [edi + 0xc]
mov byte [eax], 0
inc dword [edi + 0xc]
mov edi, dword [edi + 0x10]
test edi, edi
je 0x4ef775
push edi
call fcn.004f0e90
mov eax, dword [esi + 0x1a8]
add esp, 4
mov dword [esi + 0x150], edi
mov dword [esi + 0x1ac], eax
jmp 0x4ef606
cmp dword [esi + 0x14c], 0
je 0x4eedc7
cmp dword [esi + 0x60], 0
je 0x4eedc7
mov edx, dword [esp + 0x38]
lea edi, [esi + 0x19c]
mov eax, dword [esp + 0x48]
mov ecx, dword [edx + 0x40]
sub eax, ecx
push eax
lea eax, [ecx + ebp]
push eax
push edx
push edi
call fcn.004f1550
add esp, 0x10
test eax, eax
je 0x4ef775
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x4eed8a
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef775
mov eax, dword [edi + 0xc]
mov byte [eax], 0
inc dword [edi + 0xc]
mov eax, dword [edi + 0x10]
test eax, eax
je 0x4ef775
mov edx, dword [esp + 0x10]
mov dword [edx], ebp
push dword [esi + 0x150]
push eax
push dword [esi + 0x164]
mov eax, dword [esi + 0x60]
push dword [esi + 0x14c]
push dword [esi + 4]
call eax
add esp, 0x14
mov byte [esp + 0x44], 0
cmp dword [esi + 0x1a0], 0
mov edx, dword [esi + 0x19c]
je 0x4ef5a8
test edx, edx
je 0x4ef5ae
mov ecx, dword [edx]
mov eax, dword [esi + 0x1a0]
mov dword [edx], eax
mov dword [esi + 0x1a0], edx
mov edx, ecx
test ecx, ecx
jne 0x4eede2
jmp 0x4ef5ae
cmp dword [esi + 0x150], 0
je 0x4eee36
cmp dword [esi + 0x60], 0
je 0x4eee36
mov edx, dword [esp + 0x10]
mov dword [edx], ebp
push dword [esi + 0x150]
mov eax, dword [esi + 0x60]
push 0
push dword [esi + 0x164]
push dword [esi + 0x14c]
push dword [esi + 4]
call eax
add esp, 0x14
mov byte [esp + 0x44], 0
cmp dword [esi + 0x1a0], 0
mov edx, dword [esi + 0x19c]
je 0x4ef5a8
test edx, edx
je 0x4ef5ae
mov ecx, dword [edx]
mov eax, dword [esi + 0x1a0]
mov dword [edx], eax
mov dword [esi + 0x1a0], edx
mov edx, ecx
test ecx, ecx
jne 0x4eee51
jmp 0x4ef5ae
cmp dword [esi + 0x50], 0
je 0x4eee84
push dword [esp + 0x48]
push ebp
push dword [esp + 0x40]
push esi
call fcn.004f2230
add esp, 0x10
push dword [esp + 0x50]
mov ebp, dword [esp + 0x50]
lea eax, [esp + 0x4c]
mov edi, dword [esp + 0x44]
push ebp
push edi
push eax
push dword [esp + 0x48]
push esi
call fcn.004ed9b0
add esp, 0x18
test eax, eax
jne 0x4ef90c
cmp dword [esp + 0x48], eax
je 0x4ef75b
mov ecx, dword [esp + 0x38]
jmp 0x4ef612
mov eax, dword [esi + 0x1d0]
cmp dword [esi + 0x100], eax
jb 0x4eef45
test eax, eax
je 0x4eef23
add eax, eax
push eax
push dword [esi + 0x1cc]
mov dword [esi + 0x1d0], eax
mov eax, dword [esi + 0x10]
call eax
add esp, 8
test eax, eax
je 0x4ef76f
mov dword [esi + 0x1cc], eax
mov ecx, dword [ebx + 0xb8]
test ecx, ecx
je 0x4eef45
mov eax, dword [esi + 0x1d0]
shl eax, 2
push eax
mov eax, dword [esi + 0x10]
push ecx
call eax
add esp, 8
test eax, eax
je 0x4ef775
mov dword [ebx + 0xb8], eax
jmp 0x4eef45
mov eax, dword [esi + 0xc]
push 0x20
mov dword [esi + 0x1d0], 0x20
call eax
add esp, 4
mov dword [esi + 0x1cc], eax
test eax, eax
je 0x4ef782
mov ecx, dword [esi + 0x1cc]
mov eax, dword [esi + 0x100]
mov byte [ecx + eax], 0
cmp byte [ebx + 0xa0], 0
je case.default.0x4edc1e
push esi
call fcn.004f0d10
mov edx, eax
add esp, 4
test edx, edx
js 0x4ef775
mov ecx, dword [ebx + 0xb4]
mov eax, dword [ebx + 0xb8]
mov dword [eax + ecx*4], edx
lea ecx, [edx*8]
mov eax, dword [ebx + 0xa4]
sub ecx, edx
inc dword [ebx + 0xb4]
mov dword [eax + ecx*4], 6
cmp dword [esi + 0x80], 0
je case.default.0x4edc1e
jmp 0x4ef606
mov ecx, dword [esi + 0x1cc]
mov eax, dword [esi + 0x100]
cmp byte [ecx + eax], 0x7c
je 0x4ef8cf
mov byte [ecx + eax], 0x2c
cmp byte [ebx + 0xa0], 0
je case.default.0x4edc1e
cmp dword [esi + 0x80], 0
je case.default.0x4edc1e
jmp 0x4ef606
mov ecx, dword [esi + 0x1cc]
mov eax, dword [esi + 0x100]
mov al, byte [ecx + eax]
cmp al, 0x2c
je 0x4ef8cf
cmp byte [ebx + 0xa0], 0
je 0x4ef051
test al, al
jne 0x4ef051
mov ecx, dword [ebx + 0xb4]
mov eax, dword [ebx + 0xb8]
mov eax, dword [eax + ecx*4 - 4]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [ebx + 0xa4]
cmp dword [eax + ecx*4], 3
je 0x4ef051
mov dword [eax + ecx*4], 5
xor ecx, ecx
mov eax, dword [esp + 0x44]
cmp dword [esi + 0x80], ecx
movzx eax, al
cmovne eax, ecx
mov dword [esp + 0x44], eax
mov ecx, dword [esi + 0x1cc]
mov eax, dword [esi + 0x100]
mov byte [ecx + eax], 0x7c
jmp 0x4ef5d6
mov byte [ebx + 0x81], 1
cmp dword [esi + 0x1e8], 0
jne 0x4ef0af
mov al, byte [ebx + 0x82]
mov byte [ebx + 0x80], al
cmp byte [ebx + 0x82], 0
jne 0x4ef5d6
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x4ef5d6
push dword [esi + 4]
call eax
add esp, 4
test eax, eax
je 0x4ef889
jmp 0x4ef5d6
mov edx, dword [esp + 0x38]
lea edi, [ebx + 0x50]
mov eax, dword [esp + 0x48]
mov ecx, dword [edx + 0x40]
sub eax, ecx
push eax
lea eax, [ecx + ebp]
push eax
push edx
push edi
call fcn.004f1550
add esp, 0x10
test eax, eax
je 0x4ef775
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x4ef0ef
push edi
call fcn.004f1ae0
add esp, 4
test al, al
je 0x4ef775
mov eax, dword [edi + 0xc]
mov byte [eax], 0
inc dword [edi + 0xc]
mov edi, dword [edi + 0x10]
test edi, edi
je 0x4ef775
push 0
push edi
lea eax, [ebx + 0x84]
push eax
push esi
call fcn.004f0a40
mov ebp, eax
add esp, 0x10
mov eax, dword [ebx + 0x60]
mov dword [ebx + 0x5c], eax
cmp dword [esi + 0x10c], 0
je 0x4ef18b
xor eax, eax
cmp byte [ebx + 0x82], al
je 0x4ef139
cmp dword [esi + 0x128], eax
jmp 0x4ef13f
cmp byte [ebx + 0x81], al
sete al
test eax, eax
je 0x4ef18b
test ebp, ebp
je 0x4ef7a6
cmp byte [ebp + 0x22], 0
je 0x4ef799
cmp byte [ebp + 0x20], 0
jne 0x4ef7d3
cmp dword [ebp + 4], 0
je 0x4ef1c1
cmp dword [esp + 0x14], 0x3c
sete al
movzx eax, al
push eax
push ebp
push esi
call fcn.004f1ca0
add esp, 0xc
test eax, eax
jne 0x4ef90c
jmp 0x4ef606
test ebp, ebp
jne 0x4ef158
cmp dword [esp + 0x14], 0x3c
mov al, byte [ebx + 0x82]
mov byte [ebx + 0x80], al
jne case.default.0x4edc1e
mov eax, dword [esi + 0x78]
test eax, eax
je case.default.0x4edc1e
push 1
push edi
push dword [esi + 4]
call eax
add esp, 0xc
jmp 0x4ef606
cmp dword [esi + 0x70], 0
je 0x4ef25d
push 0x1420
push ebp
mov byte [ebx + 0x83], 0
push esi
mov byte [ebp + 0x20], 1
call fcn.004efc80
push dword [ebp + 0x18]
mov eax, dword [esi + 0x70]
push dword [ebp + 0x10]
push dword [ebp + 0x14]
push 0
push dword [esi + 0x74]
call eax
add esp, 0x20
test eax, eax
je 0x4ef7b3
mov eax, dword [esi + 0x1d8]
mov edi, esi
test eax, eax
je 0x4ef21c
nop dword [eax]
mov edi, eax
mov eax, dword [edi + 0x1d8]
test eax, eax
jne 0x4ef210
push 0x1428
push str.CLOSE
push ebp
push edi
call fcn.004efce0
dec dword [edi + 0x214]
add esp, 0x10
mov byte [ebp + 0x20], 0
cmp byte [ebx + 0x83], 0
mov byte [esp + 0x44], 0
jne 0x4ef082
mov al, byte [ebx + 0x82]
mov byte [ebx + 0x80], al
jmp 0x4ef606
mov al, byte [ebx + 0x82]
mov byte [ebx + 0x80], al
jmp case.default.0x4edc1e
cmp dword [esi + 0x80], 0
je case.default.0x4edc1e
push dword [esp + 0x48]
push ebp
push dword [esp + 0x40]
push esi
call fcn.004f0590
add esp, 0x10
mov dword [esi + 0x154], eax
test eax, eax
je 0x4ef775
mov dword [ebx + 0xb4], 0
mov dword [ebx + 0xb0], 0
mov byte [ebx + 0xa0], 1
jmp 0x4ef606
cmp byte [ebx + 0xa0], 0
je case.default.0x4edc1e
cmp dword [esi + 0x80], 0
je 0x4ef330
mov eax, dword [esi + 0xc]
push 0x14
call eax
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4ef775
mov edx, dword [esp + 0x10]
xor eax, eax
cmp dword [esp + 0x14], 0x29
mov dword [ecx + 4], 0
sete al
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
inc eax
mov dword [ecx + 0x10], 0
mov dword [ecx], eax
mov dword [edx], ebp
mov eax, dword [esi + 0x154]
push ecx
push dword [eax]
mov eax, dword [esi + 0x80]
push dword [esi + 4]
call eax
add esp, 0xc
mov byte [esp + 0x44], 0
mov byte [ebx + 0xa0], 0
jmp 0x4ef5d6
cmp byte [ebx + 0xa0], 0
je case.default.0x4edc1e
mov ecx, dword [ebx + 0xb4]
mov eax, dword [ebx + 0xb8]
mov eax, dword [eax + ecx*4 - 4]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [ebx + 0xa4]
mov dword [eax + ecx*4], 3
cmp dword [esi + 0x80], 0
je case.default.0x4edc1e
jmp 0x4ef606
xor edi, edi
jmp 0x4ef398
mov edi, 1
jmp 0x4ef398
mov edi, 2
jmp 0x4ef398
mov edi, 3
cmp byte [ebx + 0xa0], 0
je case.default.0x4edc1e
test edi, edi
jne 0x4ef3b3
mov eax, dword [esp + 0x48]
mov dword [esp + 0x34], eax
jmp 0x4ef3c2
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x48]
sub ebp, dword [eax + 0x40]
mov dword [esp + 0x34], ebp
push esi
call fcn.004f0d10
add esp, 4
test eax, eax
js 0x4ef775
push dword [esp + 0x34]
lea ebp, [eax*8]
sub ebp, eax
mov eax, dword [ebx + 0xa4]
mov dword [eax + ebp*4], 4
mov eax, dword [ebx + 0xa4]
mov dword [eax + ebp*4 + 4], edi
mov edi, dword [esp + 0x40]
push edi
push dword [esp + 0x40]
push esi
call fcn.004f0590
add esp, 0x10
test eax, eax
je 0x4ef775
mov edx, dword [eax]
xor ecx, ecx
mov eax, dword [ebx + 0xa4]
mov dword [eax + ebp*4 + 8], edx
nop
mov al, byte [ecx + edx]
inc ecx
test al, al
jne 0x4ef420
add dword [ebx + 0xa8], ecx
cmp dword [esi + 0x80], 0
je 0x4ef5ed
jmp 0x4ef606
xor edx, edx
jmp 0x4ef457
mov edx, 1
jmp 0x4ef457
mov edx, 2
jmp 0x4ef457
mov edx, 3
cmp byte [ebx + 0xa0], 0
je case.default.0x4edc1e
mov edi, dword [esi + 0x80]
dec dword [ebx + 0xb4]
mov ecx, dword [ebx + 0xb4]
mov eax, dword [ebx + 0xb8]
mov eax, dword [eax + ecx*4]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [ebx + 0xa4]
test edi, edi
mov dword [eax + ecx*4 + 4], edx
sete al
cmp dword [ebx + 0xb4], 0
mov byte [esp + 0x34], al
jne 0x4ef5da
test edi, edi
je 0x4ef526
mov ebp, dword [esi + 0x160]
mov eax, dword [ebp + 0xb0]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0xa8]
lea eax, [eax + ecx*4]
push eax
mov eax, dword [esi + 0xc]
call eax
mov edi, eax
add esp, 4
test edi, edi
je 0x4ef775
mov eax, dword [ebp + 0xb0]
lea eax, [eax + eax*4]
lea eax, [edi + eax*4]
mov dword [esp + 0x28], eax
lea eax, [edi + 0x14]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x30]
push eax
push edi
push 0
push esi
call fcn.004ec770
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x50]
push edi
mov dword [edx], eax
mov eax, dword [esi + 0x154]
push dword [eax]
mov eax, dword [esi + 0x80]
push dword [esi + 4]
call eax
mov al, byte [esp + 0x54]
add esp, 0x20
mov byte [ebx + 0xa0], 0
mov dword [ebx + 0xa8], 0
jmp 0x4ef5da
push dword [esp + 0x48]
push ebp
push dword [esp + 0x40]
push esi
call fcn.004f22f0
add esp, 0x10
test eax, eax
je 0x4ef775
jmp 0x4ef606
push dword [esp + 0x48]
push ebp
push dword [esp + 0x40]
push esi
call fcn.004f2180
add esp, 0x10
test eax, eax
je 0x4ef775
jmp 0x4ef606
cmp edi, 0xe
setne al
jmp 0x4ef5da
cmp dword [esi + 0x54], 0
sete al
jmp 0x4ef5da
cmp byte [ebx + 0x80], 0
je case.default.0x4edc1e
cmp dword [esi + 0x88], 0
je case.default.0x4edc1e
jmp 0x4ef606
cmp dword [esi + 0x60], 0
sete al
jmp 0x4ef5da
mov dword [esi + 0x1a0], edx
mov dword [esi + 0x19c], 0
mov dword [esi + 0x1ac], 0
mov dword [esi + 0x1a8], 0
mov dword [esi + 0x1a4], 0
mov eax, dword [esp + 0x44]
test al, al
je 0x4ef606
jmp case.default.0x4edc1e
cmp dword [esi + 0x80], 0
jne 0x4ef606
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
cmp dword [esi + 0x50], 0
je 0x4ef606
push dword [esp + 0x48]
push edi
push ebp
push esi
call fcn.004f2230
add esp, 0x10
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x4c]
mov eax, dword [esi + 0x1dc]
sub eax, 2
je 0x4ef907
sub eax, 1
je 0x4ef8f6
mov ebp, dword [esp + 0x48]
lea eax, [esp + 0x48]
push eax
mov eax, dword [ecx]
push edi
push ebp
push ecx
mov dword [esp + 0x4c], ebp
call eax
mov edx, dword [esp + 0x48]
mov edi, eax
mov ecx, dword [esp + 0x20]
add esp, 0x10
mov eax, dword [esp + 0x18]
jmp 0x4edb84
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
mov dword [ecx], eax
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 5
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 6
pop ebx
add esp, 0x20
ret
mov ecx, dword [esi + 0x90]
cmp edx, ecx
je 0x4ef69b
mov eax, dword [esi + 0x128]
cmp byte [eax + 0x14], 0
je 0x4ef6de
cmp byte [esi + 0x1e4], 0
jne 0x4ef6b5
cmp edx, ecx
jne 0x4ef6b5
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x20
ret
mov ecx, dword [esp + 0x40]
lea eax, [esi + 0xfc]
push edx
push ecx
push ecx
push 0xfffffffffffffffc
push eax
mov eax, dword [eax]
call eax
add esp, 0x14
cmp eax, 0xffffffff
jne 0x4ef6de
pop edi
pop esi
pop ebp
mov eax, 0x1d
pop ebx
add esp, 0x20
ret
mov eax, dword [esp + 0x4c]
pop edi
pop esi
mov dword [eax], ebp
xor eax, eax
pop ebp
pop ebx
add esp, 0x20
ret
push str._ABORTING_n
push esi
call fcn.004ebfd0
add esp, 8
mov eax, 0x2b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
pop edi
mov dword [esi + 0x13c], 0
mov eax, 1
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
pop edi
mov dword [esi + 0x140], 0
mov eax, 1
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
pop edi
mov dword [esi + 0x14c], 0
mov eax, 1
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 0x20
pop ebx
add esp, 0x20
ret
pop edi
mov dword [esi + 0x114], 0x4f0860
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
shr dword [esi + 0x1d0], 1
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x20
ret
pop edi
mov dword [esi + 0x1d0], 0
mov eax, 1
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 0x18
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x20
ret
push 0x1424
push ebp
push esi
call fcn.004efc40
add esp, 0xc
mov byte [ebp + 0x20], 0
pop edi
pop esi
pop ebp
mov eax, 0x15
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 0xc
pop ebx
add esp, 0x20
ret
cmp byte [esi + 0x1e5], 0
je 0x4ef8a0
mov al, byte [ebx + 0x81]
mov byte [ebx + 0x81], 1
cmp dword [esi + 0x1e8], 0
mov byte [esp + 0x38], al
je 0x4ef8a0
cmp dword [esi + 0x70], 0
je 0x4ef8a0
push 0x24
push 0x52ef68
lea eax, [ebx + 0x84]
push eax
push esi
call fcn.004f0a40
mov ecx, eax
add esp, 0x10
test ecx, ecx
je 0x4ef775
mov eax, dword [esi + 0x164]
mov dword [ecx + 0x14], eax
mov byte [ebx + 0x83], 0
push dword [ecx + 0x18]
mov eax, dword [esi + 0x70]
push dword [ecx + 0x10]
push dword [ecx + 0x14]
push 0
push dword [esi + 0x74]
call eax
add esp, 0x14
test eax, eax
je 0x4ef7c6
cmp byte [ebx + 0x83], 0
je 0x4ef896
cmp byte [ebx + 0x82], 0
jne 0x4ef8a0
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x4ef8a0
push dword [esi + 4]
call eax
add esp, 4
test eax, eax
jne 0x4ef8a0
pop edi
pop esi
pop ebp
mov eax, 0x16
pop ebx
add esp, 0x20
ret
mov al, byte [esp + 0x38]
mov byte [ebx + 0x81], al
mov eax, dword [esp + 0x4c]
push eax
push dword [esp + 0x44]
mov dword [esi + 0x114], fcn.004ec940
push ebp
push esi
call fcn.004ec940
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
cmp edi, 0xc
je 0x4ef8e9
cmp edi, 0x1c
je 0x4ef8dc
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 0xa
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 0x11
pop ebx
add esp, 0x20
ret
mov eax, dword [esp + 0x48]
pop edi
pop esi
mov dword [ebp], eax
xor eax, eax
pop ebp
pop ebx
add esp, 0x20
ret
mov eax, 0x23
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret