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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x88
mov esi, esp
mov al, 1
mov edx, dword [0x88c650]
mov edi, dword [0x88c654]
mov ebx, edx
add ebx, 0x3712e5e8
add ebx, 0xffffffff
add ebx, 0xc8ed1a18
imul edx, ebx
and edx, 1
cmp edx, 0
sete ah
cmp edi, 0xa
setl dl
mov dh, ah
xor dh, 1
mov bl, dl
xor bl, 1
xor al, 1
mov bh, dh
and bh, 1
and ah, al
mov byte [esi + 0x7f], al
mov al, bl
and al, 1
mov byte [esi + 0x7e], al
mov al, byte [esi + 0x7f]
and dl, al
or bh, ah
mov ah, byte [esi + 0x7e]
or ah, dl
xor bh, ah
or dh, bl
xor dh, 1
or al, 1
and dh, al
or bh, dh
test bh, 1
mov dword [esi + 0x78], ecx
jne 0x520208
jmp 0x52115d
mov eax, 4
mov dword [esi + 0x74], eax
call fcn.00437f10
mov eax, esp
mov ecx, dword [esi + 0x74]
mov dword [esi + 0x70], eax
mov eax, ecx
call fcn.00437f10
mov eax, 0x437498
mov eax, esp
mov ecx, dword [esi + 0x74]
mov dword [esi + 0x6c], eax
mov eax, ecx
call fcn.00437f10
mov eax, esp
call fcn.005211e0
mov dword [esi + 0x68], eax
mov eax, 0x3fff
mov eax, ecx
call fcn.00437f10
mov eax, esp
mov ecx, dword [esi + 0x74]
mov dword [esi + 0x64], eax
mov eax, ecx
call fcn.00437f10
mov eax, esp
mov ecx, dword [esi + 0x74]
mov dword [esi + 0x60], eax
mov eax, ecx
call fcn.00437f10
mov ecx, ebx
mov eax, esp
mov ecx, 0x18
mov dword [esi + 0x5c], eax
mov eax, ecx
call fcn.00437f10
mov eax, esp
and eax, 0xfffffff8
mov ecx, 0x200
mov esp, eax
mov ecx, dword [esi + 0x74]
mov dword [esi + 0x58], eax
mov eax, 0x437288
mov eax, ecx
call fcn.00437f10
mov eax, ebx
mov eax, esp
mov ecx, dword [esi + 0x74]
call fcn.005211f0
mov eax, ecx
call fcn.00437f10
mov eax, esp
mov ecx, dword [esi + 0x74]
mov dword [esi + 0x50], eax
mov eax, 0x4374c8
mov eax, ecx
call fcn.00437f10
mov eax, 0x20
mov eax, esp
mov ecx, dword [esi + 0x74]
mov dword [esi + 0x4c], eax
mov eax, ecx
call fcn.00437f10
mov eax, esp
mov ecx, dword [esi + 0x74]
call fcn.00521200
mov eax, ecx
call fcn.00437f10
mov eax, 0x20000
mov eax, esp
mov ecx, dword [esi + 0x74]
call fcn.00521210
mov eax, ecx
call fcn.00437f10
mov eax, esp
mov ecx, dword [esi + 0x74]
mov dword [esi + 0x40], eax
mov eax, ecx
call fcn.00437f10
mov eax, esp
mov ecx, dword [esi + 0x74]
call fcn.00521220
mov eax, 0x4374bc
mov eax, ecx
call fcn.00437f10
mov eax, 0x400000
mov eax, esp
mov ecx, dword [esi + 0x74]
mov dword [esi + 0x38], eax
mov eax, 0x200
mov eax, ecx
call fcn.00437f10
mov eax, 0x4374b0
mov eax, esp
mov ecx, dword [esi + 0x74]
mov dword [esi + 0x34], eax
mov eax, esi
mov eax, ecx
call fcn.00437f10
mov eax, esp
mov ecx, dword [esi + 0x74]
mov dword [esi + 0x30], eax
mov eax, ecx
call fcn.00437f10
mov eax, 0x4374e0
mov eax, esp
mov ecx, 0x1c
mov dword [esi + 0x2c], eax
mov eax, ecx
call fcn.00437f10
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
call fcn.00521230
mov dword [esi + 0x28], eax
mov eax, 0x80000
mov eax, ecx
call fcn.00437f10
mov eax, esp
mov ecx, dword [esi + 0x70]
mov edx, dword [esi + 0x78]
mov dword [ecx], edx
mov edi, dword [ecx]
cmp dword [edi + 0x80], 0
setne bl
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
mov dword [esi + 0x24], eax
mov eax, ecx
sub eax, 0xf268de0c
sub eax, 1
sub eax, 0xd9721f4
imul ecx, eax
and ecx, 1
cmp ecx, 0
sete bh
cmp edx, 0xa
setl al
mov ah, bh
and ah, al
xor bh, al
or ah, bh
test ah, 1
mov byte [esi + 0x23], bl
call fcn.00521240
jne 0x520406
jmp 0x52115d
mov al, byte [esi + 0x23]
test al, 1
jne 0x5204eb
jmp 0x520416
mov al, 1
mov ecx, 0
mov edx, dword [0x88c650]
mov edi, dword [0x88c654]
sub ecx, 1
mov ebx, edx
add ebx, ecx
imul edx, ebx
and edx, 1
cmp edx, 0
sete ah
push edx
mov edx, 0x9afa0218
xor edx, 0x9afa0212
cmp edi, edx
pop edx
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 0x520490
jmp 0x521176
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 0x8673952d
sub edx, 1
add edx, 0x8673952d
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
push ebx
mov ebx, 0x7f64d210
xor ebx, 0x7f64d21a
cmp ecx, ebx
pop ebx
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x5204e6
jmp 0x521176
jmp 0x520f3b
mov eax, 0
mov ecx, 0x437258
mov ecx, eax
add ecx, 0x10
mov edx, esi
mov edx, eax
sub edx, ecx
mov ecx, dword [esi + 0x1c]
call fcn.00521250
mov edi, dword [edi + 0xc]
call fcn.00521260
mov dword [ebx], edi
mov edi, dword [ebx]
mov edi, dword [edi + 0x1c]
add edi, edx
call fcn.00521270
mov dword [edx], edi
call fcn.00521280
mov edi, dword [edi + 0x18]
mov ecx, dword [esi + 0x64]
mov dword [ecx], edi
mov edi, dword [ecx]
mov ecx, dword [edx]
call fcn.00521290
mov edx, ecx
mov edx, eax
sub edx, edi
mov edi, eax
sub edi, ecx
add edx, edi
sub eax, edx
sub eax, 0xb665b984
sub eax, 1
add eax, 0xb665b984
mov ecx, dword [esi + 0x60]
call fcn.005212a0
mov eax, dword [esi + 0x68]
call fcn.005212b0
mov edx, dword [edx + 0x30]
sub esp, 4
mov edi, esp
call fcn.005212c0
mov ecx, dword [esi + 0x58]
call fcn.00405440
sub esp, 4
mov ecx, esp
mov edx, dword [esi + 0x58]
call fcn.005212d0
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x18], eax
call fcn.0047b4e0
mov dword [esi + 0x14], eax
mov eax, 0x5c6744
mov eax, dword [eax]
mov ecx, dword [esi + 0x14]
xor ecx, 0xffffffff
mov edx, eax
xor edx, 0x9130e1a9
xor edx, 0x9130e1b6
xor eax, 0xa6363beb
xor eax, 0x6171a41e
or ecx, edx
or eax, 0xc7479ff5
xor ecx, 0xffffffff
and ecx, eax
mov eax, dword [esi + 0x58]
mov dword [esi + 0x10], ecx
mov ecx, eax
call fcn.004054e0
mov eax, 0xffffffff
mov ecx, dword [esi + 0x5c]
mov edx, dword [esi + 0x10]
call fcn.005212e0
mov edx, dword [esi + 0x1c]
mov edi, dword [edx + 0x11c]
xor eax, 0x78bbdd12
xor eax, 0x78bbdd1e
mov ebx, eax
mov ebx, edi
xor ebx, eax
and ebx, edi
cmp ebx, 0
je 0x52063a
mov eax, 0
mov ecx, 0x400
mov ecx, eax
sub ecx, 0xfffffff4
mov edx, dword [esi + 0x1c]
mov edi, dword [edx + 0x80]
mov edi, dword [edi + 0xc]
sub eax, ecx
sub edi, eax
mov dword [edx + 0x60], edi
call fcn.005212f0
mov ecx, dword [eax]
call fcn.00521300
mov edx, dword [esi + 0x4c]
mov dword [edx], ecx
mov eax, dword [esi + 0x4c]
mov ecx, dword [eax]
mov edx, dword [esi + 0x68]
mov edi, dword [edx]
sub edi, 0xffffffc4
cmp ecx, edi
je 0x520843
mov eax, dword [esi + 0x4c]
call fcn.00521310
mov edx, dword [esi + 0x64]
cmp ecx, dword [edx]
jb 0x5206b9
mov eax, dword [esi + 0x4c]
mov ecx, dword [eax]
call fcn.00521320
cmp ecx, dword [edx]
jae 0x5206b9
mov eax, 0xe74486f8
mov ecx, dword [esi + 0x4c]
mov edx, dword [ecx]
call fcn.00521330
mov ebx, dword [edi]
add eax, 0
sub eax, ebx
sub eax, 0xe74486f8
shl eax, 3
add edx, eax
call fcn.00521340
call fcn.00521350
jmp 0x520843
call fcn.00521360
mov ecx, dword [0x88c654]
mov edx, 0xff
mov edx, eax
sub edx, 0x869bc8f5
sub edx, 1
add edx, 0x869bc8f5
imul eax, edx
and eax, 1
push edx
mov edx, 0x9ef532a2
xor edx, 0x9ef532a2
cmp eax, edx
pop edx
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x520715
jmp 0x52117b
call fcn.00521370
call fcn.00521380
mov edx, eax
sub edx, 0xbb0221bb
add edx, 0xffffffff
add edx, 0xbb0221bb
imul eax, edx
and eax, 1
push ecx
mov ecx, 0x7829b812
xor ecx, 0x7829b812
cmp eax, ecx
pop ecx
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x52076b
jmp 0x52117b
jmp 0x520770
mov al, 1
call fcn.00521390
mov edx, dword [0x88c654]
mov edi, ecx
add edi, 0xa65d8f33
sub edi, 1
sub edi, 0xa65d8f33
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 0x5207e5
jmp 0x521028
mov eax, dword [esi + 0x4c]
mov ecx, dword [eax]
mov ecx, dword [ecx]
mov dword [eax], ecx
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
mov edi, ecx
sub edi, 0x946f2551
add edi, 0xffffffff
add edi, 0x946f2551
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 0x52083e
jmp 0x521028
jmp 0x52064b
mov al, 1
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
mov edi, ecx
add edi, 0x812f5953
sub edi, 1
sub edi, 0x812f5953
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 0x5208b9
jmp 0x521180
mov al, 1
mov ecx, 0xffffffff
mov edx, dword [esi + 0x1c]
mov edi, dword [edx + 0x11c]
xor edi, 0xffffffff
mov ebx, eax
mov ebx, ecx
xor ebx, 8
xor ecx, 0x9b99708d
or edi, ebx
or ecx, 0x9b99708d
xor edi, 0xffffffff
and edi, ecx
cmp edi, 0
setne ah
call fcn.005213a0
mov edi, dword [0x88c654]
mov ebx, ecx
add ebx, 0x3e1f52f1
sub ebx, 1
sub ebx, 0x3e1f52f1
imul ecx, ebx
and ecx, 1
cmp ecx, 0
sete cl
cmp edi, 0xa
setl ch
mov dl, cl
xor dl, 1
mov dh, ch
xor dh, 1
xor al, 1
mov bl, dl
and bl, 1
and cl, al
mov bh, dh
and bh, 1
and ch, al
or bl, cl
or bh, ch
xor bl, bh
or dl, dh
xor dl, 1
or al, 1
and dl, al
or bl, dl
test bl, 1
mov byte [esi + 0xf], ah
jne 0x52096e
jmp 0x521180
mov al, byte [esi + 0xf]
test al, 1
jne 0x52097e
jmp 0x520d32
mov al, 1
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
mov edi, ecx
add edi, 0x1ed4a6cd
sub edi, 1
sub edi, 0x1ed4a6cd
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 0x5209f4
jmp 0x521039
mov eax, 0
mov ecx, eax
sub ecx, 0xfffffff0
mov edx, eax
sub edx, ecx
call fcn.005213b0
mov dword [ecx], 0
mov edi, dword [esi + 0x6c]
mov ebx, dword [edi]
mov ebx, dword [ebx + 0x1c]
add ebx, edx
mov edx, dword [esi + 0x44]
mov dword [edx], ebx
mov ebx, dword [edx]
add ebx, 0x68
mov ecx, dword [esi + 0x40]
mov dword [ecx], ebx
mov ebx, dword [0x88c650]
mov ecx, dword [0x88c654]
sub eax, 1
mov edx, 0x4374a4
mov edx, ebx
add edx, eax
imul ebx, edx
and ebx, 1
cmp ebx, 0
sete al
cmp ecx, 0xa
setl ah
mov cl, al
and cl, ah
xor al, ah
or cl, al
test cl, 1
jne 0x520a77
jmp 0x521039
jmp 0x520a7c
call fcn.005213c0
mov ecx, dword [eax]
cmp dword [ecx + 8], 0
je 0x520aca
mov eax, 0xffffffff
call fcn.005213d0
mov edx, dword [ecx]
mov edx, dword [edx + 8]
xor eax, 0x11828c72
xor eax, 0xee7d738a
mov edi, edx
xor edi, eax
and edi, edx
call fcn.005213e0
call fcn.005213f0
call fcn.00521400
call fcn.00521410
jmp 0x520a7c
mov al, 1
mov ecx, dword [0x88c650]
call fcn.00521420
mov edi, ecx
add edi, 0x42a9949f
add edi, 0xffffffff
add edi, 0xbd566b61
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 0x520b3f
jmp 0x521185
lea eax, [0x5cd1ea]
mov ecx, dword [esi + 0x64]
mov edx, dword [ecx]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00472a00
add esp, 8
mov ecx, dword [esi + 0x3c]
mov dword [ecx], eax
cmp dword [ecx], 0
setne bl
mov eax, dword [0x88c650]
call fcn.00521430
mov edi, eax
add edi, 0xee172d8b
sub edi, 1
sub edi, 0xee172d8b
imul eax, edi
and eax, 1
cmp eax, 0
sete bh
cmp edx, 0xa
setl al
mov ah, bh
and ah, al
xor bh, al
or ah, bh
test ah, 1
mov byte [esi + 0xe], bl
jne 0x520bba
jmp 0x521185
mov al, byte [esi + 0xe]
test al, 1
jne 0x520bca
jmp 0x520c6b
mov eax, 0
mov ecx, dword [esi + 0x64]
call fcn.00521440
mov edi, dword [esi + 0x3c]
call fcn.00521450
mov ebx, dword [ebx + 0xc]
sub edx, 0xbf80c76d
add edx, ebx
add edx, 0xbf80c76d
mov ebx, dword [esi + 0x38]
mov dword [ebx], edx
mov edx, dword [ecx]
call fcn.00521460
mov ecx, dword [ecx + 0xc]
mov edi, eax
sub edi, ecx
sub edx, edi
call fcn.00521470
mov edi, dword [ecx]
call fcn.00521480
sub eax, edi
sub edx, eax
mov eax, dword [esi + 0x34]
mov dword [eax], edx
mov edx, dword [esi + 0x48]
mov edi, dword [edx]
mov eax, dword [esi + 0x2c]
mov dword [eax], edi
mov edi, dword [esi + 0x34]
call fcn.00521490
mov ecx, dword [ebx]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 8], eax
call fcn.00428330
add esp, 0xc
call fcn.005214a0
mov dword [ecx], eax
mov eax, dword [ecx]
mov edx, dword [esi + 0x34]
cmp eax, dword [edx]
je 0x520c66
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
mov edx, dword [esi + 0x1c]
mov dword [edx + 0x5c], ecx
jmp 0x520c6b
mov al, 1
mov ecx, dword [0x88c650]
call fcn.005214b0
mov edi, ecx
sub edi, 0xf63cbcd2
sub edi, 1
sub edi, 0x9c3432e
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 0x520ce0
jmp 0x521081
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
add edx, 0x2aa6286c
add edx, 0xffffffff
sub edx, 0x2aa6286c
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 0x520d2d
jmp 0x521081
jmp 0x520d32
mov eax, 0
mov ecx, eax
sub ecx, 0xfffffff8
sub eax, ecx
mov ecx, 0x1c
call fcn.005214c0
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], 0x1c
mov dword [esi + 8], eax
call fcn.005214d0
call fcn.00439740
add esp, 0xc
call fcn.005214e0
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x14]
mov edx, dword [esi + 8]
add ecx, edx
mov edi, dword [esi + 0x24]
call fcn.005214f0
call fcn.00521500
mov ebx, dword [edi]
sub esp, 0xc
mov eax, esp
mov edx, dword [esi + 0x28]
call fcn.00521510
mov dword [eax], ebx
mov dword [eax + 8], 0x1c
call ecx
cmp eax, 0
je 0x520f20
mov al, 1
call fcn.00521520
mov edx, dword [0x88c654]
mov edi, ecx
add edi, 0xa93be87
sub edi, 1
sub edi, 0xa93be87
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 0x520e27
jmp 0x521086
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
add edx, 0xaa5f327e
sub edx, 1
sub edx, 0xaa5f327e
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 0x520e74
jmp 0x5211af
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + 4]
call fcn.00521530
mov dword [edx + 0x64], ecx
mov ecx, dword [0x88c650]
call fcn.00521540
mov ebx, ecx
add ebx, 0x2d7adbbe
sub ebx, 1
add ebx, 0xd2852442
imul ecx, ebx
and ecx, 1
cmp ecx, 0
sete al
cmp edi, 0xa
setl ah
mov cl, al
and cl, ah
xor al, ah
or cl, al
test cl, 1
jne 0x520ed2
jmp 0x5211af
mov eax, 0
call fcn.00521550
mov edx, dword [0x88c654]
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 0x520f1b
jmp 0x521086
jmp 0x520f20
call fcn.00521560
mov ecx, dword [eax]
sub esp, 4
mov edx, 0x437474
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esi + 0x1c]
call fcn.0054c8c0
mov al, 1
mov ecx, 0
mov edx, dword [0x88c650]
call fcn.00521570
add ecx, 0xffffffff
mov ebx, esi
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 0x520fad
jmp 0x5211c6
mov al, 1
mov ecx, 0
mov edx, dword [0x88c650]
mov edi, dword [0x88c654]
sub ecx, 1
mov ebx, ecx
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 0x521020
jmp 0x5211c6
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x4c]
mov ecx, dword [eax]
call fcn.00521580
mov dword [eax], ecx
jmp 0x5207e5
mov eax, 0
mov ecx, edx
mov ecx, eax
add ecx, 0x10
sub eax, ecx
call fcn.00521590
mov dword [ecx], 0
call fcn.005215a0
mov edi, dword [edx]
mov edi, dword [edi + 0x1c]
add edi, eax
mov eax, dword [esi + 0x44]
call fcn.005215b0
call fcn.005215c0
add edi, 0x68
mov ebx, dword [esi + 0x40]
call fcn.005215d0
jmp 0x5209f4
jmp 0x520ce0
mov al, 1
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
mov edi, ecx
add edi, 0x2e11a2e0
sub edi, 1
add edi, 0xd1ee5d20
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 0x5210fc
jmp 0x5211cb
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + 4]
mov edx, dword [esi + 0x1c]
mov dword [edx + 0x64], ecx
mov ecx, dword [0x88c650]
call fcn.005215e0
mov ebx, ecx
add ebx, 0xb8123f4d
add ebx, 0xffffffff
add ebx, 0x47edc0b3
imul ecx, ebx
and ecx, 1
cmp ecx, 0
sete al
cmp edi, 0xa
setl ah
mov cl, al
and cl, ah
xor al, ah
or cl, al
test cl, 1
jne 0x521158
jmp 0x5211cb
jmp 0x520e27
mov eax, 4
call fcn.00437f10
mov eax, esp
mov ecx, dword [esi + 0x78]
call fcn.005215f0
jmp 0x520208
jmp 0x520490
jmp 0x520715
jmp 0x5208b9
lea eax, [0x5cd1ea]
mov ecx, dword [esi + 0x64]
call fcn.00521600
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00472a00
add esp, 8
mov ecx, dword [esi + 0x3c]
mov dword [ecx], eax
jmp 0x520b3f
call fcn.00521610
mov ecx, dword [eax + 4]
call fcn.00521620
call fcn.00521630
jmp 0x520e74
jmp 0x520fad
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + 4]
call fcn.00521640
call fcn.00521650
jmp 0x5210fc