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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x120
mov esi, esp
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov bl, 1
mov dword [esi + 0x114], eax
mov eax, dword [0x101537c8]
mov dword [esi + 0x110], eax
mov eax, dword [0x101537c4]
mov dword [esi + 0x10c], eax
mov eax, dword [esi + 0x110]
add eax, 0x7824930e
sub eax, 1
sub eax, 0x7824930e
mov dword [esi + 0x108], eax
mov eax, dword [esi + 0x110]
mov dword [esi + 0x104], ecx
mov ecx, dword [esi + 0x108]
imul eax, ecx
and eax, 1
cmp eax, 0
sete bh
mov eax, dword [esi + 0x10c]
cmp eax, 0xa
setl al
mov ah, bh
xor ah, 1
mov cl, al
xor cl, 1
xor bl, 1
mov ch, ah
and ch, 1
and bh, bl
mov byte [esi + 0x103], al
mov al, cl
and al, 1
mov byte [esi + 0x102], al
mov al, byte [esi + 0x103]
and al, bl
or ch, bh
mov bh, byte [esi + 0x102]
or bh, al
xor ch, bh
or ah, cl
xor ah, 1
or bl, 1
and ah, bl
or ch, ah
test ch, 1
mov dword [esi + 0xfc], edx
mov dword [esi + 0xf8], edi
jne 0x10004bc7
jmp 0x10005c3a
mov al, 1
mov ecx, 4
mov byte [esi + 0xf7], al
mov eax, ecx
mov dword [esi + 0xf0], ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xec], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xe8], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xe4], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xe0], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xdc], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xd8], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xd4], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, 0x18
mov dword [esi + 0xd0], eax
mov eax, ecx
mov dword [esi + 0xcc], ecx
call fcn.1001fcd0
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xc8], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xc4], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xc0], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xbc], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xb8], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xb4], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xb0], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0xcc]
mov dword [esi + 0xac], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xa8], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xa4], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0xa0], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0x9c], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0x98], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0x94], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0xf0]
mov dword [esi + 0x90], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0xe8]
mov edx, dword [esi + 0x114]
mov dword [ecx], edx
mov edi, dword [esi + 0xe4]
mov ebx, dword [esi + 0x104]
mov dword [edi], ebx
mov ecx, dword [esi + 0xe0]
mov edx, dword [esi + 0xfc]
mov dword [ecx], edx
mov ecx, dword [esi + 0xdc]
mov edx, dword [esi + 0xf8]
mov dword [ecx], edx
cmp dword [edi], 0
setne cl
mov edx, dword [0x101537c8]
mov edi, dword [0x101537c4]
mov ebx, edx
add ebx, 0xa8ef55fb
sub ebx, 1
sub ebx, 0xa8ef55fb
imul edx, ebx
and edx, 1
cmp edx, 0
sete ch
cmp edi, 0xa
setl dl
mov dh, ch
xor dh, 1
mov bl, dl
xor bl, 1
mov bh, byte [esi + 0xf7]
xor bh, 1
mov dword [esi + 0x8c], eax
mov al, dh
and al, 1
and ch, bh
mov ah, bl
and ah, 1
and dl, bh
or al, ch
or ah, dl
xor al, ah
or dh, bl
xor dh, 1
or bh, 1
and dh, bh
or al, dh
test al, 1
mov byte [esi + 0x8b], cl
jne 0x10004ec4
jmp 0x10005c3a
mov al, byte [esi + 0x8b]
test al, 1
jne 0x10004ed7
jmp 0x10004fa5
mov eax, dword [0x101537c8]
mov ecx, dword [0x101537c4]
mov edx, eax
add edx, 0xe7eacc7b
sub edx, 1
sub edx, 0xe7eacc7b
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x10004f24
jmp 0x10005cb3
mov eax, dword [esi + 0xe4]
mov ecx, dword [eax]
mov edx, dword [esi + 0xdc]
mov edi, dword [edx]
sub esp, 8
mov ebx, esp
mov dword [ebx + 4], ecx
mov dword [ebx], edi
mov ecx, dword [esi + 0xc8]
call fcn.1002d010
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
mov edi, ecx
add edi, 0x4c3e2f9e
sub edi, 1
sub edi, 0x4c3e2f9e
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete cl
cmp edx, 0xa
setl ch
mov dl, cl
and dl, ch
xor cl, ch
or dl, cl
test dl, 1
mov dword [esi + 0x84], eax
jne 0x10004fa0
jmp 0x10005cb3
jmp 0x10004fc5
mov eax, dword [esi + 0xdc]
mov ecx, dword [eax]
sub esp, 4
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esi + 0xc8]
call fcn.100df9e0
mov dword [esi + 0x80], eax
mov al, 1
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
mov edi, ecx
sub edi, 0x97382a35
sub edi, 1
add edi, 0x97382a35
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 1
mov ch, bh
and ch, 1
and ah, al
mov dl, cl
and dl, 1
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 1
and bh, al
or ch, bh
test ch, 1
jne 0x1000503b
jmp 0x10005ce0
sub esp, 4
mov eax, esp
mov ecx, dword [esi + 0xc4]
mov dword [eax], ecx
mov ecx, dword [esi + 0xc8]
call fcn.1005c630
sub esp, 4
mov eax, esp
mov ecx, dword [esi + 0xc0]
mov dword [eax], ecx
mov ecx, dword [esi + 0xc8]
call fcn.10045ae0
sub esp, 4
mov eax, esp
mov ecx, dword [esi + 0xbc]
mov dword [eax], ecx
mov ecx, dword [esi + 0xc8]
call fcn.1005c630
mov dl, 1
mov eax, 0
mov ecx, dword [0x101537c8]
mov edi, dword [0x101537c4]
sub eax, 1
mov ebx, ecx
add ebx, eax
imul ecx, ebx
and ecx, 1
cmp ecx, 0
sete dh
cmp edi, 0xa
setl al
mov ah, dh
xor ah, 1
mov cl, al
xor cl, 1
xor dl, 0
mov ch, ah
and ch, 0
and dh, dl
mov bl, cl
and bl, 0
and al, dl
or ch, dh
or bl, al
xor ch, bl
or ah, cl
xor ah, 1
or dl, 0
and ah, dl
or ch, ah
test ch, 1
jne 0x100050f5
jmp 0x10005ce0
lea eax, [0x100205e1]
sub esp, 0x14
mov ecx, dword [esi + 0xb8]
mov dword [esp], ecx
mov edx, dword [esi + 0xbc]
mov edi, dword [edx]
mov dword [esp + 4], edi
mov edi, dword [esi + 0xc0]
mov ebx, dword [edi]
mov dword [esp + 8], ebx
mov ebx, dword [esi + 0xc4]
mov ecx, dword [ebx]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.10001290
add esp, 0x14
mov eax, 0xffffffff
mov ecx, dword [esi + 0xe0]
mov edx, dword [ecx]
mov edi, dword [esi + 0xac]
mov dword [edi], edx
mov edx, dword [edi]
movzx edx, byte [edx]
xor eax, 0xf0
mov ebx, edx
xor ebx, eax
and ebx, edx
cmp ebx, 0xf0
jne 0x10005330
mov al, 1
mov ecx, 0
mov edx, dword [0x101537c8]
mov edi, dword [0x101537c4]
sub ecx, 1
mov ebx, edx
add ebx, ecx
imul edx, ebx
and edx, 1
cmp edx, 0
sete ah
cmp edi, 0xa
setl cl
mov ch, ah
xor ch, 1
mov dl, cl
xor dl, 1
xor al, 0
mov dh, ch
and dh, 0
and ah, al
mov bl, dl
and bl, 0
and cl, al
or dh, ah
or bl, cl
xor dh, bl
or ch, dl
xor ch, 1
or al, 0
and ch, al
or dh, ch
test dh, 1
jne 0x100051d9
jmp 0x10005d2d
mov eax, 0xffffffff
mov ecx, 0
mov edx, dword [esi + 0xac]
mov edi, dword [edx]
movzx edi, byte [edi]
mov ebx, eax
xor ebx, 0xf
mov edx, edi
xor edx, ebx
and edx, edi
sub ecx, edx
add ecx, 0xf
imul ecx, ecx, 0x4f40
mov edx, dword [esi + 0xe8]
mov edi, dword [edx]
mov ebx, edi
xor ebx, 0xffffffff
and ebx, 0xc380caab
mov edx, eax
xor edx, 0xc380caab
and edi, edx
mov dword [esi + 0x7c], eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xc380caab
and ecx, edx
or ebx, edi
or eax, ecx
xor ebx, eax
mov eax, dword [esi + 0xe8]
mov dword [eax], ebx
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 1]
mov edi, dword [eax]
mov ebx, edx
xor ebx, 0xffffffff
mov eax, edi
and eax, ebx
xor edi, 0xffffffff
and edx, edi
or eax, edx
mov edx, dword [esi + 0xd8]
mov dword [edx], eax
mov eax, dword [ecx]
mov eax, dword [eax + 5]
mov edi, dword [esi + 0xe8]
mov ebx, dword [edi]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, ebx
and edx, ecx
xor ebx, 0xffffffff
and eax, ebx
or edx, eax
shr edx, 0x10
mov eax, dword [esi + 0xd4]
mov dword [eax], edx
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 5]
mov ebx, dword [edi]
mov eax, edx
xor eax, 0xffffffff
mov ecx, ebx
and ecx, eax
xor ebx, 0xffffffff
and edx, ebx
or ecx, edx
mov eax, dword [esi + 0x7c]
xor eax, 0xffff
mov edx, ecx
xor edx, eax
and edx, ecx
mov eax, dword [esi + 0xd0]
mov dword [eax], edx
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
mov ebx, ecx
sub ebx, 0x9e487963
sub ebx, 1
add ebx, 0x9e487963
imul ecx, ebx
and ecx, 1
cmp ecx, 0
sete al
cmp edx, 0xa
setl ah
mov cl, al
and cl, ah
xor al, ah
or cl, al
test cl, 1
jne 0x1000532b
jmp 0x10005d2d
jmp 0x10005460
mov eax, dword [esi + 0xe0]
mov ecx, dword [eax]
sub esp, 4
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esi + 0xa8]
call fcn.100df9e0
mov dword [esi + 0x78], eax
sub esp, 4
mov eax, esp
mov ecx, dword [esi + 0xa4]
mov dword [eax], ecx
mov ecx, dword [esi + 0xa8]
call fcn.1005c630
sub esp, 4
mov eax, esp
mov ecx, dword [esi + 0xa0]
mov dword [eax], ecx
mov ecx, dword [esi + 0xa8]
call fcn.10045ae0
sub esp, 4
mov eax, esp
mov ecx, dword [esi + 0x9c]
mov dword [eax], ecx
mov ecx, dword [esi + 0xa8]
call fcn.1005c630
lea eax, [0x100205e1]
sub esp, 0x14
mov ecx, dword [esi + 0x98]
mov dword [esp], ecx
mov edx, dword [esi + 0x9c]
mov edi, dword [edx]
mov dword [esp + 4], edi
mov edi, dword [esi + 0xa0]
mov ebx, dword [edi]
mov dword [esp + 8], ebx
mov ebx, dword [esi + 0xa4]
mov ecx, dword [ebx]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.10001290
add esp, 0x14
sub esp, 4
mov eax, dword [esi + 0xa8]
mov dword [esp], eax
call fcn.100cd050
add esp, 4
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0xd8]
mov ecx, dword [esi + 0x74]
mov dword [eax], ecx
mov ecx, dword [esi + 0xa8]
call fcn.100dfab0
mov ecx, dword [esi + 0xd4]
mov dword [ecx], eax
sub esp, 4
mov eax, dword [esi + 0xa8]
mov dword [esp], eax
call fcn.10049d40
add esp, 4
mov dword [esi + 0x70], eax
mov eax, 0xffffffff
mov ecx, dword [esi + 0x70]
xor ecx, 0xffffffff
mov edx, eax
xor edx, 0xffff
xor eax, 0xefa877e0
or ecx, edx
or eax, 0xefa877e0
xor ecx, 0xffffffff
and ecx, eax
mov eax, dword [esi + 0xd0]
mov dword [eax], ecx
mov ecx, dword [esi + 0xa8]
call fcn.1002b850
mov ecx, dword [esi + 0xc8]
call fcn.10001280
mov ecx, dword [esi + 0xd4]
cmp eax, dword [ecx]
jae 0x1000557a
mov al, 1
mov ecx, 0
mov edx, dword [0x101537c8]
mov edi, dword [0x101537c4]
sub ecx, 1
mov ebx, edx
add ebx, ecx
imul edx, ebx
and edx, 1
cmp edx, 0
sete ah
cmp edi, 0xa
setl cl
mov ch, ah
xor ch, 1
mov dl, cl
xor dl, 1
xor al, 1
mov dh, ch
and dh, 1
and ah, al
mov bl, dl
and bl, 1
and cl, al
or dh, ah
or bl, cl
xor dh, bl
or ch, dl
xor ch, 1
or al, 1
and ch, al
or dh, ch
test dh, 1
jne 0x100054ea
jmp 0x10005ea0
mov al, 1
mov ecx, dword [esi + 0xec]
mov byte [ecx], 0
mov edx, dword [esi + 0x94]
mov dword [edx], 1
mov edi, dword [0x101537c8]
mov ebx, dword [0x101537c4]
mov ecx, edi
add ecx, 0x5701d28d
sub ecx, 1
sub ecx, 0x5701d28d
imul edi, ecx
and edi, 1
cmp edi, 0
sete ah
cmp ebx, 0xa
setl cl
mov ch, ah
xor ch, 1
mov dl, cl
xor dl, 1
xor al, 1
mov dh, ch
and dh, 1
and ah, al
mov bl, dl
and bl, 1
and cl, al
or dh, ah
or bl, cl
xor dh, bl
or ch, dl
xor ch, 1
or al, 1
and ch, al
or dh, ch
test dh, 1
jne 0x10005575
jmp 0x10005ea0
jmp 0x10005c1a
mov eax, dword [esi + 0xd4]
mov ecx, dword [eax]
mov edx, dword [esi + 0xc8]
mov dword [esi + 0x6c], ecx
mov ecx, edx
call fcn.1002b920
sub esp, 8
mov dword [esp], eax
mov eax, dword [esi + 0x6c]
mov dword [esp + 4], eax
call fcn.100d5500
add esp, 8
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x68]
mov dword [eax], ecx
mov edx, dword [esi + 0x8c]
mov dword [edx], 0
mov eax, dword [esi + 0xd8]
mov ecx, dword [eax]
mov edx, dword [esi + 0x90]
cmp ecx, dword [edx]
jne 0x10005738
mov eax, dword [esi + 0xd0]
mov ecx, dword [eax]
mov edx, dword [esi + 0xd4]
mov edi, dword [edx]
mov ebx, dword [esi + 0x8c]
mov eax, dword [ebx]
sub esp, 4
mov edx, esp
mov dword [edx], eax
mov eax, dword [esi + 0xc8]
mov dword [esi + 0x64], ecx
mov ecx, eax
mov dword [esi + 0x60], edi
call fcn.10045b40
mov dword [esi + 0x5c], eax
mov al, 1
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
mov edi, ecx
sub edi, 0x56d9ec3c
sub edi, 1
add edi, 0x56d9ec3c
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 1
mov ch, bh
and ch, 1
and ah, al
mov dl, cl
and dl, 1
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 1
and bh, al
or ch, bh
test ch, 1
jne 0x10005682
jmp 0x10005eba
mov eax, 0
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
sub eax, 1
mov edi, ecx
add edi, eax
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x100056cc
jmp 0x10005eba
mov eax, 0
sub esp, 0x10
mov ecx, dword [esi + 0x5c]
mov dword [esp], ecx
mov edx, dword [esi + 0x60]
mov dword [esp + 4], edx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esi + 0x58], eax
call fcn.10073fd0
add esp, 0x10
mov dword [esi + 0x54], eax
mov eax, 0xffffffff
xor eax, 0xffff
mov ecx, dword [esi + 0x54]
xor ecx, eax
mov eax, dword [esi + 0x54]
and ecx, eax
mov edx, dword [esi + 0x64]
cmp edx, ecx
jne 0x10005738
mov eax, dword [esi + 0xec]
mov byte [eax], 1
mov ecx, dword [esi + 0x94]
mov dword [ecx], 1
jmp 0x10005c1a
mov ecx, dword [esi + 0xc8]
call fcn.10001280
mov ecx, dword [esi + 0xd4]
mov edx, dword [ecx]
add eax, 0x8472aa67
sub eax, edx
sub eax, 0x8472aa67
mov edx, dword [esi + 0x8c]
mov edi, dword [edx]
add edi, 0xe96b2df3
add edi, 1
sub edi, 0xe96b2df3
mov dword [edx], edi
cmp eax, edi
jae 0x1000586c
mov al, 1
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
mov edi, ecx
sub edi, 0xefb12ae9
sub edi, 1
add edi, 0xefb12ae9
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 0
mov ch, bh
and ch, 0
and ah, al
mov dl, cl
and dl, 0
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 0
and bh, al
or ch, bh
test ch, 1
jne 0x100057f1
jmp 0x10005ebf
mov al, 1
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
mov edi, ecx
sub edi, 0x3dd90a9a
sub edi, 1
add edi, 0x3dd90a9a
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 1
mov ch, bh
and ch, 1
and ah, al
mov dl, cl
and dl, 1
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 1
and bh, al
or ch, bh
test ch, 1
jne 0x10005867
jmp 0x10005ebf
jmp 0x10005b68
mov eax, dword [esi + 0x8c]
mov ecx, dword [eax]
mov edx, dword [esi + 0xd4]
mov edi, dword [edx]
add ecx, 0x9556cdeb
add ecx, edi
sub ecx, 0x9556cdeb
sub ecx, 0xa567eb82
sub ecx, 1
add ecx, 0xa567eb82
sub esp, 4
mov edi, esp
mov dword [edi], ecx
mov ecx, dword [esi + 0xc8]
call fcn.10045b40
mov dword [esi + 0x50], eax
mov al, 1
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
mov edi, ecx
sub edi, 0x3387927a
sub edi, 1
add edi, 0x3387927a
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 0
mov ch, bh
and ch, 0
and ah, al
mov dl, cl
and dl, 0
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 0
and bh, al
or ch, bh
test ch, 1
jne 0x10005927
jmp 0x10005ec4
mov al, 1
mov ecx, dword [esi + 0x50]
mov dl, byte [ecx]
mov edi, dword [esi + 0x8c]
mov ebx, dword [edi]
sub ebx, 0x4b056f4a
sub ebx, 1
add ebx, 0x4b056f4a
mov ecx, dword [0x101537c8]
mov edi, dword [0x101537c4]
mov byte [esi + 0x4f], al
mov eax, ecx
sub eax, 0x9ef2f51f
sub eax, 1
add eax, 0x9ef2f51f
imul ecx, eax
and ecx, 1
cmp ecx, 0
sete dh
cmp edi, 0xa
setl al
mov ah, dh
xor ah, 1
mov cl, al
xor cl, 1
mov ch, byte [esi + 0x4f]
xor ch, 0
mov byte [esi + 0x4e], al
mov al, ah
and al, 0
and dh, ch
mov byte [esi + 0x4d], al
mov al, cl
and al, 0
mov byte [esi + 0x4c], al
mov al, byte [esi + 0x4e]
and al, ch
mov byte [esi + 0x4b], al
mov al, byte [esi + 0x4d]
or al, dh
mov dh, byte [esi + 0x4c]
mov byte [esi + 0x4a], al
mov al, byte [esi + 0x4b]
or dh, al
mov al, byte [esi + 0x4a]
xor al, dh
or ah, cl
xor ah, 1
or ch, 0
and ah, ch
or al, ah
test al, 1
mov dword [esi + 0x44], ebx
mov byte [esi + 0x43], dl
jne 0x100059e2
jmp 0x10005ec4
sub esp, 4
mov eax, esp
mov ecx, dword [esi + 0x44]
mov dword [eax], ecx
mov ecx, dword [esi + 0xc8]
call fcn.10045b40
mov dword [esi + 0x3c], eax
mov al, 1
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
mov edi, ecx
sub edi, 0x7142b07b
sub edi, 1
add edi, 0x7142b07b
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 0
mov ch, bh
and ch, 0
and ah, al
mov dl, cl
and dl, 0
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 0
and bh, al
or ch, bh
test ch, 1
jne 0x10005a70
jmp 0x10005ec9
mov al, 1
mov ecx, dword [esi + 0x3c]
mov dl, byte [ecx]
mov edi, dword [esi + 0xd4]
mov ebx, dword [edi]
mov ecx, dword [esi + 0x90]
mov ecx, dword [ecx]
mov edi, dword [0x101537c8]
mov byte [esi + 0x3b], al
mov eax, dword [0x101537c4]
mov dword [esi + 0x34], eax
mov eax, edi
sub eax, 0x22535d94
sub eax, 1
add eax, 0x22535d94
imul edi, eax
and edi, 1
cmp edi, 0
sete dh
mov eax, dword [esi + 0x34]
cmp eax, 0xa
setl al
mov ah, dh
xor ah, 1
mov byte [esi + 0x33], al
xor al, 1
mov byte [esi + 0x32], al
mov al, byte [esi + 0x3b]
xor al, 0
mov byte [esi + 0x31], al
mov al, ah
and al, 0
mov byte [esi + 0x30], al
mov al, byte [esi + 0x31]
and dh, al
mov al, byte [esi + 0x32]
and al, 0
mov byte [esi + 0x2f], al
mov al, byte [esi + 0x33]
mov dword [esi + 0x28], ecx
mov cl, byte [esi + 0x31]
and al, cl
mov ch, byte [esi + 0x30]
or ch, dh
mov dh, byte [esi + 0x2f]
or dh, al
xor ch, dh
mov al, byte [esi + 0x32]
or ah, al
xor ah, 1
or cl, 0
and ah, cl
or ch, ah
test ch, 1
mov dword [esi + 0x24], ebx
mov byte [esi + 0x23], dl
jne 0x10005b29
jmp 0x10005ec9
sub esp, 0x10
mov eax, dword [esi + 0x28]
mov dword [esp], eax
mov ecx, dword [esi + 0x24]
mov dword [esp + 4], ecx
mov dl, byte [esi + 0x23]
movzx edi, dl
mov dword [esp + 8], edi
mov dh, byte [esi + 0x43]
movzx edi, dh
mov dword [esp + 0xc], edi
call fcn.100d56a0
add esp, 0x10
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x1c]
mov dword [eax], ecx
jmp 0x100055c1
mov eax, dword [0x101537c8]
mov ecx, dword [0x101537c4]
mov edx, eax
sub edx, 0x17bdf96f
sub edx, 1
add edx, 0x17bdf96f
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x10005bb5
jmp 0x10005ece
mov eax, 0
mov ecx, dword [esi + 0xec]
mov byte [ecx], 0
mov edx, dword [esi + 0x94]
mov dword [edx], 1
mov edi, dword [0x101537c8]
mov ebx, dword [0x101537c4]
sub eax, 1
mov ecx, edi
add ecx, eax
imul edi, ecx
and edi, 1
cmp edi, 0
sete al
cmp ebx, 0xa
setl ah
mov cl, al
and cl, ah
xor al, ah
or cl, al
test cl, 1
jne 0x10005c15
jmp 0x10005ece
jmp 0x10005c1a
mov ecx, dword [esi + 0xc8]
call fcn.1002b850
mov ecx, dword [esi + 0xec]
mov al, byte [ecx]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, 4
mov dword [esi + 0x18], eax
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x14], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x10], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0x18]
mov dword [esi + 0xc], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0x18]
mov dword [esi + 8], eax
mov eax, ecx
call fcn.1001fcd0
mov eax, esp
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x114]
mov dword [ecx], edx
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 0x104]
mov dword [edi], ebx
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xfc]
mov dword [ecx], edx
mov ecx, dword [esi + 0xf8]
mov dword [eax], ecx
jmp 0x10004bc7
mov eax, dword [esi + 0xe4]
mov ecx, dword [eax]
mov edx, dword [esi + 0xdc]
mov edi, dword [edx]
sub esp, 8
mov ebx, esp
mov dword [ebx + 4], ecx
mov dword [ebx], edi
mov ecx, dword [esi + 0xc8]
call fcn.1002d010
mov dword [esi + 4], eax
jmp 0x10004f24
sub esp, 4
mov eax, esp
mov ecx, dword [esi + 0xc4]
mov dword [eax], ecx
mov ecx, dword [esi + 0xc8]
call fcn.1005c630
sub esp, 4
mov eax, esp
mov ecx, dword [esi + 0xc0]
mov dword [eax], ecx
mov ecx, dword [esi + 0xc8]
call fcn.10045ae0
sub esp, 4
mov eax, esp
mov ecx, dword [esi + 0xbc]
mov dword [eax], ecx
mov ecx, dword [esi + 0xc8]
call fcn.1005c630
jmp 0x1000503b
mov eax, 0xffffffff
mov ecx, 0xaf6cc829
mov edx, dword [esi + 0xac]
mov edi, dword [edx]
movzx edi, byte [edi]
xor edi, 0xffffffff
mov ebx, eax
xor ebx, 0xf
mov edx, eax
xor edx, 0x188e3e86
or edi, ebx
or edx, 0x188e3e86
xor edi, 0xffffffff
and edi, edx
add ecx, 0xf
sub ecx, edi
sub ecx, 0xaf6cc829
imul ecx, ecx, 0x4f40
mov edx, dword [esi + 0xe8]
mov edi, dword [edx]
mov ebx, edi
xor ebx, 0xffffffff
and ebx, 0x4b57eb31
mov edx, eax
xor edx, 0x4b57eb31
and edi, edx
mov dword [esi], eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x4b57eb31
and ecx, edx
or ebx, edi
or eax, ecx
xor ebx, eax
mov eax, dword [esi + 0xe8]
mov dword [eax], ebx
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 1]
mov edi, dword [eax]
mov ebx, edx
xor ebx, 0xffffffff
and ebx, 0x88b2a0ac
mov eax, dword [esi]
xor eax, 0x88b2a0ac
and edx, eax
mov ecx, edi
xor ecx, 0xffffffff
and ecx, 0x88b2a0ac
and edi, eax
or ebx, edx
or ecx, edi
xor ebx, ecx
mov eax, dword [esi + 0xd8]
mov dword [eax], ebx
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 5]
mov edi, dword [esi + 0xe8]
mov ebx, dword [edi]
mov eax, edx
xor eax, 0xffffffff
and eax, 0xe699c9d0
mov ecx, dword [esi]
xor ecx, 0xe699c9d0
and edx, ecx
mov edi, ebx
xor edi, 0xffffffff
and edi, 0xe699c9d0
and ebx, ecx
or eax, edx
or edi, ebx
xor eax, edi
shr eax, 0x10
mov ecx, dword [esi + 0xd4]
mov dword [ecx], eax
mov eax, dword [esi + 0xac]
mov edx, dword [eax]
mov edx, dword [edx + 5]
mov edi, dword [esi + 0xe8]
mov ebx, dword [edi]
mov eax, edx
xor eax, 0xffffffff
and eax, 0x84a292
mov ecx, dword [esi]
xor ecx, 0x84a292
and edx, ecx
mov edi, ebx
xor edi, 0xffffffff
and edi, 0x84a292
and ebx, ecx
or eax, edx
or edi, ebx
xor eax, edi
mov ecx, dword [esi]
xor ecx, 0xffff
mov edx, eax
xor edx, ecx
and edx, eax
mov eax, dword [esi + 0xd0]
mov dword [eax], edx
jmp 0x100051d9
mov eax, dword [esi + 0xec]
mov byte [eax], 0
mov ecx, dword [esi + 0x94]
mov dword [ecx], 1
jmp 0x100054ea
jmp 0x10005682
jmp 0x100057f1
jmp 0x10005927
jmp 0x10005a70
mov eax, dword [esi + 0xec]
mov byte [eax], 0
mov ecx, dword [esi + 0x94]
mov dword [ecx], 1
jmp 0x10005bb5