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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xe8
mov esi, esp
mov dword [esi + 0x40], ecx
mov eax, dword [ebp + 8]
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], eax
mov al, byte [ebp + 0x1c]
mov byte [esi + 0x4e], al
mov al, byte [ebp + 0x18]
mov byte [esi + 0x4f], al
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x50], eax
lea eax, [ebp + 0xc]
mov dword [esi + 0x54], eax
mov eax, dword [0x59a2c0]
xor eax, ebp
mov dword [esi + 0xe0], eax
mov dword [esi + 0x58], 0xbe2cd501
mov eax, dword [esi + 0x58]
mov dword [esi + 0x3c], eax
sub eax, 0x803da792
je 0x50d08b
jmp 0x5098bf
mov eax, dword [esi + 0x3c]
sub eax, 0x80877dda
je 0x50c507
jmp 0x5098d2
mov eax, dword [esi + 0x3c]
sub eax, 0x813a990c
je 0x50b6d3
jmp 0x5098e5
mov eax, dword [esi + 0x3c]
sub eax, 0x819f12ec
je 0x50bed9
jmp 0x5098f8
mov eax, dword [esi + 0x3c]
sub eax, 0x8259a5e4
je 0x50b895
jmp 0x50990b
mov eax, dword [esi + 0x3c]
sub eax, 0x82b3fad4
je 0x50aee6
jmp 0x50991e
mov eax, dword [esi + 0x3c]
sub eax, 0x82e0d2eb
je 0x50e07b
jmp 0x509931
mov eax, dword [esi + 0x3c]
sub eax, 0x831af2c2
je 0x50e007
jmp 0x509944
mov eax, dword [esi + 0x3c]
sub eax, 0x8520c34a
je 0x50e0cf
jmp 0x509957
mov eax, dword [esi + 0x3c]
sub eax, 0x88387732
je 0x50c93a
jmp 0x50996a
mov eax, dword [esi + 0x3c]
sub eax, 0x89883ef7
je 0x50dffb
jmp 0x50997d
mov eax, dword [esi + 0x3c]
sub eax, 0x89fbbd88
je 0x50b3ba
jmp 0x509990
mov eax, dword [esi + 0x3c]
sub eax, 0x8d3d9420
je 0x50ddc0
jmp 0x5099a3
mov eax, dword [esi + 0x3c]
sub eax, 0x8d5bebda
je 0x50e016
jmp 0x5099b6
mov eax, dword [esi + 0x3c]
sub eax, 0x8defaeb2
je 0x50bd10
jmp 0x5099c9
mov eax, dword [esi + 0x3c]
sub eax, 0x8e7bea1b
je 0x50c612
jmp 0x5099dc
mov eax, dword [esi + 0x3c]
sub eax, 0x8e9fc51a
je 0x50ad5d
jmp 0x5099ef
mov eax, dword [esi + 0x3c]
sub eax, 0x92551ee9
je 0x50cd92
jmp 0x509a02
mov eax, dword [esi + 0x3c]
sub eax, 0x954337c9
je 0x50b987
jmp 0x509a15
mov eax, dword [esi + 0x3c]
sub eax, 0x958b920f
je 0x50cc77
jmp 0x509a28
mov eax, dword [esi + 0x3c]
sub eax, 0x970f5816
je 0x50e04d
jmp 0x509a3b
mov eax, dword [esi + 0x3c]
sub eax, 0x971ef72d
je 0x50e39d
jmp 0x509a4e
mov eax, dword [esi + 0x3c]
sub eax, 0x97201e10
je 0x50db9f
jmp 0x509a61
mov eax, dword [esi + 0x3c]
sub eax, 0x981b718e
je 0x50b291
jmp 0x509a74
mov eax, dword [esi + 0x3c]
sub eax, 0x9a29205b
je 0x50b752
jmp 0x509a87
mov eax, dword [esi + 0x3c]
sub eax, 0x9b7cd470
je 0x50b397
jmp 0x509a9a
mov eax, dword [esi + 0x3c]
sub eax, 0x9d291c63
je 0x50bdd1
jmp 0x509aad
mov eax, dword [esi + 0x3c]
sub eax, 0x9f155567
je 0x50e0b7
jmp 0x509ac0
mov eax, dword [esi + 0x3c]
sub eax, 0x9fb0d0ea
je 0x50d58a
jmp 0x509ad3
mov eax, dword [esi + 0x3c]
sub eax, 0xa159efee
je 0x50dfef
jmp 0x509ae6
mov eax, dword [esi + 0x3c]
sub eax, 0xa1b6675c
je 0x50d92f
jmp 0x509af9
mov eax, dword [esi + 0x3c]
sub eax, 0xa9a89e50
je 0x50abcc
jmp 0x509b0c
mov eax, dword [esi + 0x3c]
sub eax, 0xaaba9dec
je 0x50c7ad
jmp 0x509b1f
mov eax, dword [esi + 0x3c]
sub eax, 0xaac92b83
je 0x50afed
jmp 0x509b32
mov eax, dword [esi + 0x3c]
sub eax, 0xac8a8cbb
je 0x50dfd7
jmp 0x509b45
mov eax, dword [esi + 0x3c]
sub eax, 0xac8af194
je 0x50afa7
jmp 0x509b58
mov eax, dword [esi + 0x3c]
sub eax, 0xad0703e7
je 0x50c002
jmp 0x509b6b
mov eax, dword [esi + 0x3c]
sub eax, 0xad4791f8
je 0x50bc4b
jmp 0x509b7e
mov eax, dword [esi + 0x3c]
sub eax, 0xae580f4d
je 0x50be1f
jmp 0x509b91
mov eax, dword [esi + 0x3c]
sub eax, 0xb26362e0
je 0x50d708
jmp 0x509ba4
mov eax, dword [esi + 0x3c]
sub eax, 0xb66a3a99
je 0x50a9e8
jmp 0x509bb7
mov eax, dword [esi + 0x3c]
sub eax, 0xb6c94ea3
je 0x50e281
jmp 0x509bca
mov eax, dword [esi + 0x3c]
sub eax, 0xb8411b9d
je 0x50b4a0
jmp 0x509bdd
mov eax, dword [esi + 0x3c]
sub eax, 0xb8ab2f02
je 0x50b3a3
jmp 0x509bf0
mov eax, dword [esi + 0x3c]
sub eax, 0xbb632660
je 0x50c3ed
jmp 0x509c03
mov eax, dword [esi + 0x3c]
sub eax, 0xbc4bc7fa
je 0x50cb14
jmp 0x509c16
mov eax, dword [esi + 0x3c]
sub eax, 0xbde80533
je 0x50b0be
jmp 0x509c29
mov eax, dword [esi + 0x3c]
sub eax, 0xbe2cd501
je 0x50a85a
jmp 0x509c3c
mov eax, dword [esi + 0x3c]
sub eax, 0xbe478aa7
je 0x50c2ce
jmp 0x509c4f
mov eax, dword [esi + 0x3c]
sub eax, 0xc1469da4
je 0x50c314
jmp 0x509c62
mov eax, dword [esi + 0x3c]
sub eax, 0xc2067af0
je 0x50bebb
jmp 0x509c75
mov eax, dword [esi + 0x3c]
sub eax, 0xc3c95919
je 0x50bb92
jmp 0x509c88
mov eax, dword [esi + 0x3c]
sub eax, 0xc3eaa115
je 0x50bd5e
jmp 0x509c9b
mov eax, dword [esi + 0x3c]
sub eax, 0xc5b5b5db
je 0x50d171
jmp 0x509cae
mov eax, dword [esi + 0x3c]
sub eax, 0xc68446c9
je 0x50e0ab
jmp 0x509cc1
mov eax, dword [esi + 0x3c]
sub eax, 0xc6d4bc3a
je 0x50c67d
jmp 0x509cd4
mov eax, dword [esi + 0x3c]
sub eax, 0xc73441a8
je 0x50b847
jmp 0x509ce7
mov eax, dword [esi + 0x3c]
sub eax, 0xc8ce6fff
je 0x50c8ec
jmp 0x509cfa
mov eax, dword [esi + 0x3c]
sub eax, 0xc8f076c0
je 0x50deca
jmp 0x509d0d
mov eax, dword [esi + 0x3c]
sub eax, 0xcccdbbee
je 0x50c1c3
jmp 0x509d20
mov eax, dword [esi + 0x3c]
sub eax, 0xcf48e5f8
je 0x50c3d5
jmp 0x509d33
mov eax, dword [esi + 0x3c]
sub eax, 0xd09f8131
je 0x50c881
jmp 0x509d46
mov eax, dword [esi + 0x3c]
sub eax, 0xd31cbc70
je 0x50de65
jmp 0x509d59
mov eax, dword [esi + 0x3c]
sub eax, 0xd4a21844
je 0x50d1d9
jmp 0x509d6c
mov eax, dword [esi + 0x3c]
sub eax, 0xd5c8edd6
je 0x50d488
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
xor edi, edi
sub edi, 1
mov edx, ecx
add edx, edi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0xac8a8cbb
mov ecx, 0x3f659aa1
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x50]
mov bl, byte [esi + 0x4f]
mov edi, dword [esi + 0x44]
push eax
push eax
mov eax, esp
mov dword [esi + 0x9c], eax
mov al, byte [esi + 0x4e]
mov dword [esi + 0x60], edi
and al, 1
mov byte [esi + 0x5f], al
mov eax, dword [esi + 0x64]
mov byte [eax], bl
mov eax, dword [esi + 0x68]
mov dword [eax], edx
mov eax, dword [esi + 0x6c]
mov dword [eax], ecx
mov eax, dword [esi + 0x6c]
mov eax, dword [eax]
mov dword [esi + 0xa0], eax
mov eax, dword [esi + 0x68]
mov ecx, dword [eax]
call fcn.004780b0
mov ecx, eax
mov edx, 0xffffffff
xor edx, 0x4000
mov eax, ecx
xor eax, edx
and eax, ecx
cmp eax, 0
setne al
and al, 1
mov byte [esi + 0xa7], al
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
mov edx, ecx
sub edx, 0xe73930fc
sub edx, 1
add edx, 0xe73930fc
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0xa80e7ec
mov ecx, 0x21c71bbe
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
mov edx, ecx
sub edx, 0x49888a67
sub edx, 1
add edx, 0x49888a67
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0x1334165d
mov ecx, 0xe1b566ec
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
mov edx, eax
add edx, 0xcc6d473d
sub edx, 1
sub edx, 0xcc6d473d
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xb26362e0
mov ecx, 0x3fca751a
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
mov edx, ecx
sub edx, 0x96c41490
sub edx, 1
add edx, 0x96c41490
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0x6a3b9c85
mov ecx, 0xef9b56f7
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
xor edi, edi
sub edi, 1
mov edx, eax
add edx, edi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xa159efee
mov ecx, 0xaac92b83
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov dword [esi + 0x58], 0x36f6f1b3
jmp 0x50e428
mov dword [esi + 0x58], 0xff7909b7
jmp 0x50e428
mov dword [esi + 0x58], 0x11e5e5a
jmp 0x50e428
mov dword [esi + 0x58], 0xb8ab2f02
jmp 0x50e428
mov ecx, dword [esi + 0x80]
call fcn.004a9d20
mov dword [esi + 0x58], 0x6929aa62
jmp 0x50e428
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
mov edx, ecx
add edx, 0xcc211591
sub edx, 1
sub edx, 0xcc211591
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x47594e36
mov ecx, 0x6711002b
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [esi + 0x74]
mov eax, dword [eax]
mov dword [esi + 0xbc], eax
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
mov edx, eax
sub edx, 0x155b3642
sub edx, 1
add edx, 0x155b3642
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x831af2c2
mov ecx, 0x6968ce2c
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov dword [esi + 0x58], 0x126c702e
jmp 0x50e428
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
mov edx, eax
sub edx, 0xa6a72fb9
sub edx, 1
add edx, 0xa6a72fb9
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x970f5816
mov ecx, 0x63b2e0c5
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
mov edx, eax
add edx, 0xaaef6f79
sub edx, 1
sub edx, 0xaaef6f79
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x7eced875
mov ecx, 0x8259a5e4
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
mov edx, ecx
add edx, 0x54ac1206
sub edx, 1
sub edx, 0x54ac1206
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0x7eced875
mov ecx, 0x1727fbc
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
mov edx, eax
add edx, 0xc2ecfe0d
sub edx, 1
sub edx, 0xc2ecfe0d
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xd67fcb58
mov ecx, 0x1dd8b143
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
xor edi, edi
sub edi, 1
mov edx, eax
add edx, edi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xff251750
mov ecx, 0x6252b4f1
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
xor edi, edi
sub edi, 1
mov edx, eax
add edx, edi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x82e0d2eb
mov ecx, 0x2b178e81
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
mov edx, eax
sub edx, 0x6b87fef5
sub edx, 1
add edx, 0x6b87fef5
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xd6d3c94f
mov ecx, 0xc3eaa115
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
mov edx, ecx
sub edx, 0x954cfbc5
sub edx, 1
add edx, 0x954cfbc5
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0xd6d3c94f
mov ecx, 0x9d291c63
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
mov edx, eax
sub edx, 0x186c4854
sub edx, 1
add edx, 0x186c4854
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x6652e77b
mov ecx, 0xae580f4d
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov ecx, dword [esi + 0xc0]
mov eax, dword [esi + 0xc4]
sub ecx, 1
sbb eax, 0
setl al
and al, 1
mov byte [esi + 0xcf], al
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
mov edx, ecx
sub edx, 0x28e56201
sub edx, 1
add edx, 0x28e56201
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x6652e77b
mov ecx, 0xdb9c26fc
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov dl, byte [esi + 0xcf]
mov eax, 0x819f12ec
mov ecx, 0x4d028ebb
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [esi + 0x68]
mov ecx, dword [eax]
call fcn.00473c00
mov dword [esi + 0xd0], eax
mov ecx, dword [esi + 0x7c]
call fcn.00524aa0
mov dword [esi + 0xd4], eax
mov dword [esi + 0x58], 0x3e0e7a47
jmp 0x50e428
mov dword [esi + 0x58], 0x63232d96
jmp 0x50e428
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
mov edx, ecx
add edx, 0x6faf1834
sub edx, 1
sub edx, 0x6faf1834
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0xf466468b
mov ecx, 0xfef65a79
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
xor edi, edi
sub edi, 1
mov edx, eax
add edx, edi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x1ecc5b81
mov ecx, 0xc1469da4
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
mov edx, ecx
sub edx, 0xa1d0e4d8
sub edx, 1
add edx, 0xa1d0e4d8
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0xc68446c9
mov ecx, 0x1a900a0
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov dword [esi + 0x58], 0x3ee87392
jmp 0x50e428
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
mov edx, ecx
sub edx, 0x6061ead7
sub edx, 1
add edx, 0x6061ead7
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0xdd54fe7e
mov ecx, 0x908e748
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov dword [esi + 0x58], 0xa17d446
jmp 0x50e428
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
xor edi, edi
sub edi, 1
mov edx, ecx
add edx, edi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0x9f155567
mov ecx, 0xc6d4bc3a
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
mov edx, ecx
add edx, 0x3f9ed248
sub edx, 1
sub edx, 0x3f9ed248
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x147b8b27
mov ecx, 0xe20c109e
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
mov edx, eax
add edx, 0xeca026ce
sub edx, 1
sub edx, 0xeca026ce
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x235d74dd
mov ecx, 0x16a4fdfb
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
xor edi, edi
sub edi, 1
mov edx, ecx
add edx, edi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x58e803f
mov ecx, 0xc8ce6fff
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
mov edx, eax
add edx, 0x1d87d67b
sub edx, 1
sub edx, 0x1d87d67b
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x8520c34a
mov ecx, 0x88387732
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov edx, dword [esi + 0x54]
mov eax, dword [esi + 0x64]
mov cl, byte [eax]
mov eax, dword [esi + 0x90]
mov edi, dword [edx]
mov dword [eax], edi
mov edx, dword [edx + 4]
mov dword [eax + 4], edx
mov edi, dword [esi + 0x8c]
mov edx, dword [esi + 0x90]
mov ebx, dword [esi + 0xa0]
mov eax, dword [esi + 0xdc]
sub esp, 0x18
mov dword [esp], ebx
mov dword [esp + 4], edi
mov edi, dword [edx]
mov dword [esp + 8], edi
mov edx, dword [edx + 4]
mov dword [esp + 0xc], edx
movsx ecx, cl
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call fcn.00524c60
mov eax, dword [esi + 0x54]
add esp, 0x18
mov ecx, dword [esi + 0x8c]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x88]
mov dword [eax], 0
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
xor edi, edi
sub edi, 1
mov edx, eax
add edx, edi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x8520c34a
mov ecx, 0x3435fa66
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov edi, dword [esi + 0x54]
mov ecx, dword [esi + 0x7c]
call fcn.00524aa0
mov dword [esi + 0x28], eax
mov ecx, dword [esi + 0x7c]
call fcn.004bcaa0
mov ecx, eax
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x98]
mov ebx, dword [edi]
mov dword [edx], ebx
mov edi, dword [edi + 4]
mov dword [edx + 4], edi
mov edi, dword [esi + 0x94]
mov edx, dword [esi + 0x98]
mov ebx, dword [esi + 0xa0]
sub esp, 0x18
mov dword [esp], ebx
mov dword [esp + 4], edi
mov edi, dword [edx]
mov dword [esp + 8], edi
mov edx, dword [edx + 4]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call fcn.005272e0
add esp, 0x18
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
xor edi, edi
sub edi, 1
mov edx, eax
add edx, edi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xb09e898
mov ecx, 0x628ba043
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
mov edx, eax
sub edx, 0x86fdb221
sub edx, 1
add edx, 0x86fdb221
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x2db59e95
mov ecx, 0x6af023f2
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov ebx, dword [esi + 0x54]
mov eax, dword [esi + 0x94]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x68]
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax + 4], 0
mov dword [eax], 0
call fcn.0047c1b0
mov eax, dword [esi + 0x88]
mov eax, dword [eax]
mov ecx, dword [esi + 0x64]
mov cl, byte [ecx]
mov edx, dword [esi + 0x9c]
mov edi, dword [ebx]
mov dword [edx], edi
mov edi, dword [esi + 0x44]
mov ebx, dword [ebx + 4]
mov dword [edx + 4], ebx
mov edx, dword [esi + 0x9c]
mov ebx, dword [esi + 0xa0]
sub esp, 0x18
mov dword [esp], ebx
mov dword [esp + 4], edi
mov edi, dword [edx]
mov dword [esp + 8], edi
mov edx, dword [edx + 4]
mov dword [esp + 0xc], edx
movsx ecx, cl
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call fcn.00524c60
add esp, 0x18
mov ecx, dword [esi + 0x7c]
call fcn.004a9d20
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
mov edx, ecx
add edx, 0xc336d044
sub edx, 1
sub edx, 0xc336d044
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x533e456e
mov ecx, 0xd692688d
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov ecx, dword [0x59bf98]
mov eax, dword [0x59bf94]
mov edx, ecx
add edx, 0xabf1ce91
sub edx, 1
sub edx, 0xabf1ce91
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0x7884d484
mov ecx, 0xf9723c62
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov ecx, dword [esi + 0xe0]
xor ecx, ebp
call fcn.0056f580
mov eax, dword [esi + 0x48]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x18
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0xb4]
mov ecx, dword [ecx]
mov dword [esi + 0x24], ecx
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x20], ecx
mov ecx, dword [esi + 0xa0]
mov edx, dword [esi + 0xa8]
mov bl, byte [esi + 0xaf]
mov edi, dword [esi + 0xb0]
sub esp, 0x18
mov dword [esp], eax
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x20]
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0xc], edi
movsx edi, bl
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edx
call eax
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
mov edx, eax
sub edx, 0xf3717bc4
sub edx, 1
add edx, 0xf3717bc4
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xd31cbc70
mov ecx, 0x283411de
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov eax, dword [esi + 0x74]
mov ecx, dword [eax]
mov eax, dword [esi + 0x80]
sub esp, 4
mov dword [esp], eax
call fcn.0056bdd0
mov dword [esi + 0x58], 0x63551904
jmp 0x50e428
mov dword [esi + 0x58], 0x8e9fc51a
jmp 0x50e428
mov eax, dword [esi + 0xd0]
mov eax, dword [esi + 0xd4]
mov dword [esi + 0x58], 0x31a8ac51
jmp 0x50e428
mov edx, dword [esi + 0x54]
mov eax, dword [esi + 0x64]
mov cl, byte [eax]
mov eax, dword [esi + 0x90]
mov edi, dword [edx]
mov dword [eax], edi
mov edx, dword [edx + 4]
mov dword [eax + 4], edx
mov edi, dword [esi + 0x8c]
mov edx, dword [esi + 0x90]
mov ebx, dword [esi + 0xa0]
mov eax, dword [esi + 0xdc]
sub esp, 0x18
mov dword [esp], ebx
mov dword [esp + 4], edi
mov edi, dword [edx]
mov dword [esp + 8], edi
mov edx, dword [edx + 4]
mov dword [esp + 0xc], edx
movsx ecx, cl
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call fcn.00524c60
mov eax, dword [esi + 0x54]
add esp, 0x18
mov ecx, dword [esi + 0x8c]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x88]
mov dword [eax], 0
mov eax, dword [0x59bf98]
mov ecx, dword [0x59bf94]
mov edx, eax
sub edx, 0x8540a264
sub edx, 1
add edx, 0x8540a264
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xe6e12bd6
mov ecx, 0xe3fced13
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x58], eax
jmp 0x50e428
mov ebx, dword [esi + 0x54]
mov eax, dword [esi + 0x94]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x68]
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax + 4], 0
mov dword [eax], 0
call fcn.0047c1b0
mov eax, dword [esi + 0x88]
mov eax, dword [eax]
mov ecx, dword [esi + 0x64]
mov cl, byte [ecx]
mov edx, dword [esi + 0x9c]
mov edi, dword [ebx]
mov dword [edx], edi
mov edi, dword [esi + 0x44]
mov ebx, dword [ebx + 4]
mov dword [edx + 4], ebx
mov edx, dword [esi + 0x9c]
mov ebx, dword [esi + 0xa0]
sub esp, 0x18
mov dword [esp], ebx
mov dword [esp + 4], edi
mov edi, dword [edx]
mov dword [esp + 8], edi
mov edx, dword [edx + 4]
mov dword [esp + 0xc], edx
movsx ecx, cl
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call fcn.00524c60
add esp, 0x18
mov ecx, dword [esi + 0x7c]
call fcn.004a9d20
mov dword [esi + 0x58], 0xf4cca7c4
jmp 0x50e428
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0xb4]
mov ecx, dword [ecx]
mov dword [esi + 0x14], ecx
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0xa0]
mov edx, dword [esi + 0xa8]
mov bl, byte [esi + 0xaf]
mov edi, dword [esi + 0xb0]
sub esp, 0x18
mov dword [esp], eax
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0xc], edi
movsx edi, bl
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edx
call eax
mov dword [esi + 0x58], 0xd4a21844
jmp 0x50e428
mov eax, dword [esi + 0x68]
mov dword [esi + 0x58], 0x6024b2e9
jmp 0x50e428
mov dword [esi + 0x58], 0x3f659aa1
jmp 0x50e428
mov dword [esi + 0x58], 0xac8af194
jmp 0x50e428
mov dword [esi + 0x58], 0x48a4c6ae
jmp 0x50e428
mov eax, dword [esi + 0x74]
mov dword [esi + 0x58], 0xb8411b9d
jmp 0x50e428
mov eax, dword [esi + 0x84]
mov ecx, dword [esi + 0xbc]
sub esp, 4
mov dword [esp], eax
call fcn.0056c5c0
mov ecx, dword [esi + 0x7c]
mov eax, dword [esi + 0x84]
sub esp, 4
mov dword [esp], eax
call fcn.0056bae0
mov dword [esi + 0x58], 0x398c933a
jmp 0x50e428
mov dword [esi + 0x58], 0x9a29205b
jmp 0x50e428
mov dword [esi + 0x58], 0xad4791f8
jmp 0x50e428
mov dword [esi + 0x58], 0x1a900a0
jmp 0x50e428
mov dword [esi + 0x58], 0x8e7bea1b
jmp 0x50e428
mov edx, dword [esi + 0x54]
mov eax, dword [esi + 0x64]
mov cl, byte [eax]
mov eax, dword [esi + 0x90]
mov edi, dword [edx]
mov dword [eax], edi
mov edx, dword [edx + 4]
mov dword [eax + 4], edx
mov edi, dword [esi + 0x8c]
mov edx, dword [esi + 0x90]
mov ebx, dword [esi + 0xa0]
mov eax, dword [esi + 0xdc]
sub esp, 0x18
mov dword [esp], ebx
mov dword [esp + 4], edi
mov edi, dword [edx]
mov dword [esp + 8], edi
mov edx, dword [edx + 4]
mov dword [esp + 0xc], edx
movsx ecx, cl
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call fcn.00524c60
mov eax, dword [esi + 0x54]
add esp, 0x18
mov ecx, dword [esi + 0x8c]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x88]
mov dword [eax], 0
mov dword [esi + 0x58], 0x88387732
jmp 0x50e428
mov dword [esi + 0x58], 0x5a6d1dd6
jmp 0x50e428
mov edi, dword [esi + 0x54]
mov ecx, dword [esi + 0x7c]
call fcn.00524aa0
mov dword [esi + 4], eax
mov ecx, dword [esi + 0x7c]
call fcn.004bcaa0
mov ecx, eax
mov eax, dword [esi + 4]
mov edx, dword [esi + 0x98]
mov ebx, dword [edi]
mov dword [edx], ebx
mov edi, dword [edi + 4]
mov dword [edx + 4], edi
mov edi, dword [esi + 0x94]
mov edx, dword [esi + 0x98]
mov ebx, dword [esi + 0xa0]
sub esp, 0x18
mov dword [esp], ebx
mov dword [esp + 4], edi
mov edi, dword [edx]
mov dword [esp + 8], edi
mov edx, dword [edx + 4]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call fcn.005272e0
add esp, 0x18
mov dword [esi + 0x58], 0xb90ef9b
jmp 0x50e428
jmp 0x5098a9