Function at 0x10002570
Capabilities:
Access peb ldr_data
Inspect section memory permissions
Parse pe header
Resolve function by hash
Resolve function by parsing pe exports

Disassembly:
push ebx
push edi
push esi
sub esp, 0x90
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov word [esp + 0x52], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x8c], 0
call fcn.10002568
mov dword [esp + 0x24], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x10], 0xfc60f074
mov eax, dword [esp + 0x10]
mov ecx, eax
sub ecx, 0x80ac2f2e
je 0x1000362d
jmp 0x100025ff
mov ecx, eax
sub ecx, 0x8825c0b4
je 0x10003764
jmp 0x1000260f
mov ecx, eax
sub ecx, 0x8947700c
je 0x100041a6
jmp 0x1000261f
mov ecx, eax
sub ecx, 0x8a38a2a7
je 0x10004439
jmp 0x1000262f
mov ecx, eax
sub ecx, 0x8e235c9c
je 0x10004160
jmp 0x1000263f
mov ecx, eax
sub ecx, 0x91680134
je 0x10003adb
jmp 0x1000264f
mov ecx, eax
sub ecx, 0x9259c35b
je 0x1000414b
jmp 0x1000265f
mov ecx, eax
sub ecx, 0x9404186e
je 0x10004247
jmp 0x1000266f
mov ecx, eax
sub ecx, 0x978ff79c
je 0x10003f17
jmp 0x1000267f
mov ecx, eax
sub ecx, 0xa179b9cd
je 0x10002dd0
jmp 0x1000268f
mov ecx, eax
sub ecx, 0xa1e7c680
je 0x10003c95
jmp 0x1000269f
mov ecx, eax
sub ecx, 0xa42fd0c2
je 0x10003807
jmp 0x100026af
mov ecx, eax
sub ecx, 0xa43cf373
je 0x10003170
jmp 0x100026bf
mov ecx, eax
sub ecx, 0xa6608e9c
je 0x10002ee1
jmp 0x100026cf
mov ecx, eax
sub ecx, 0xa7ddc24b
je 0x10002f0e
jmp 0x100026df
mov ecx, eax
sub ecx, 0xaeeeed6a
je 0x10002f8c
jmp 0x100026ef
mov ecx, eax
sub ecx, 0xb098ef4f
je 0x10002fdd
jmp 0x100026ff
mov ecx, eax
sub ecx, 0xb13fe47a
je 0x10004079
jmp 0x1000270f
mov ecx, eax
sub ecx, 0xb48c55b6
je 0x100033a4
jmp 0x1000271f
mov ecx, eax
sub ecx, 0xb608a6dc
je 0x100037c2
jmp 0x1000272f
mov ecx, eax
sub ecx, 0xb799e4db
je 0x1000428d
jmp 0x1000273f
mov ecx, eax
sub ecx, 0xc254cf82
je 0x10004064
jmp 0x1000274f
mov ecx, eax
sub ecx, 0xc352e20d
je 0x100042a2
jmp 0x1000275f
mov ecx, eax
sub ecx, 0xc58b8caa
je 0x10004033
jmp 0x1000276f
mov ecx, eax
sub ecx, 0xc9523015
je 0x1000387d
jmp 0x1000277f
mov ecx, eax
sub ecx, 0xc9e52f84
je 0x100039cd
jmp 0x1000278f
mov ecx, eax
sub ecx, 0xcc11a937
je 0x10003c6e
jmp 0x1000279f
mov ecx, eax
sub ecx, 0xcc4f8e86
je 0x1000355c
jmp 0x100027af
mov ecx, eax
sub ecx, 0xcda1f849
je 0x10003648
jmp 0x100027bf
mov ecx, eax
sub ecx, 0xce4c083f
je 0x10002e75
jmp 0x100027cf
mov ecx, eax
sub ecx, 0xd09616e1
je 0x1000383e
jmp 0x100027df
mov ecx, eax
sub ecx, 0xd12e0e9c
je 0x10003b58
jmp 0x100027ef
mov ecx, eax
sub ecx, 0xd69799db
je 0x10003670
jmp 0x100027ff
mov ecx, eax
sub ecx, 0xda1341dd
je 0x100037f2
jmp 0x1000280f
mov ecx, eax
sub ecx, 0xdadee999
je 0x10003478
jmp 0x1000281f
mov ecx, eax
sub ecx, 0xdcb91b85
je 0x10002fb0
jmp 0x1000282f
mov ecx, eax
sub ecx, 0xdf9031ca
je 0x10003b2f
jmp 0x1000283f
mov ecx, eax
sub ecx, 0xdff72364
je 0x10003eed
jmp 0x1000284f
mov ecx, eax
sub ecx, 0xe1702882
je 0x10004105
jmp 0x1000285f
mov ecx, eax
sub ecx, 0xe17f897c
je 0x10003093
jmp 0x1000286f
mov ecx, eax
sub ecx, 0xe1a4b8fe
je 0x100038f1
jmp 0x1000287f
mov ecx, eax
sub ecx, 0xe1ed07c7
je 0x1000332a
jmp 0x1000288f
mov ecx, eax
sub ecx, 0xe4062ada
je 0x10003ec4
jmp 0x1000289f
mov ecx, eax
sub ecx, 0xe4fa4731
je 0x10003226
jmp 0x100028af
mov ecx, eax
sub ecx, 0xe5ca37e5
je 0x100041ec
jmp 0x100028bf
mov ecx, eax
sub ecx, 0xe5ce0b04
je 0x10003310
jmp 0x100028cf
mov ecx, eax
sub ecx, 0xecfba80b
je 0x10003152
jmp 0x100028df
mov ecx, eax
sub ecx, 0xef7be53d
je 0x1000324d
jmp 0x100028ef
mov ecx, eax
sub ecx, 0xf03f73ad
je 0x10003e2c
jmp 0x100028ff
mov ecx, eax
sub ecx, 0xf15045eb
je 0x100033c2
jmp 0x1000290f
mov ecx, eax
sub ecx, 0xf3f01f3e
je 0x10003950
jmp 0x1000291f
mov ecx, eax
sub ecx, 0xf4f8078a
je 0x10003d16
jmp 0x1000292f
mov ecx, eax
sub ecx, 0xf8728f02
je 0x10003344
jmp 0x1000293f
mov ecx, eax
sub ecx, 0xf9a13c37
je 0x1000401e
jmp 0x1000294f
mov ecx, eax
sub ecx, 0xfc60f074
je 0x10002da1
jmp 0x1000295f
mov ecx, eax
sub ecx, 0xfca4a5a6
je 0x10003f74
jmp 0x1000296f
mov ecx, eax
sub ecx, 0xfee53c12
je 0x10003a99
jmp 0x1000297f
mov ecx, eax
sub ecx, 0x1a718a4
je 0x1000396d
jmp 0x1000298f
mov ecx, eax
sub ecx, 0x2773ff8
je 0x10002e14
jmp 0x1000299f
mov ecx, eax
sub ecx, 0x45ff49d
je 0x10002e5b
jmp 0x100029af
mov ecx, eax
sub ecx, 0x8a85343
je 0x1000326b
jmp 0x100029bf
mov ecx, eax
sub ecx, 0x96c2b5f
je 0x10003eaa
jmp 0x100029cf
mov ecx, eax
sub ecx, 0xdb84ccc
je 0x10003ed1
jmp 0x100029df
mov ecx, eax
sub ecx, 0xea39af8
je 0x1000345a
jmp 0x100029ef
mov ecx, eax
sub ecx, 0x12c6e7e4
je 0x100032d1
mov dword [esp + 0x10], 0x36729ef9
jmp 0x10004476
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x30], eax
cmp dword [esp + 0x30], 0x40
mov eax, 0x2203979f
mov ecx, 0x446894e9
cmovae ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
xor esi, esi
sub esi, edx
xor edx, edx
sub edx, ecx
add esi, edx
sub eax, esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
cmp dword [eax], 0x4550
mov eax, 0x5e302c12
mov ecx, 0x45ff49d
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov dword [esp + 0x10], 0x446894e9
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x24]
xor edx, edx
sub edx, ecx
xor ecx, ecx
sub ecx, 0xffffffff
add edx, ecx
sub eax, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], 0xfc60f074
jmp 0x10004476
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
mov ax, word [eax + 0x24]
mov word [esp + 0x2a], ax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], 0xa7ddc24b
jmp 0x10004476
mov eax, dword [esp + 0x1c]
rol eax, 0x13
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
cmp eax, 0x61
mov eax, 0x697d84dc
mov ecx, 0x2c2c3426
cmovge ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x2c]
xor edx, edx
sub edx, ecx
xor ecx, ecx
sub ecx, 1
add edx, ecx
sub eax, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], 0xdcb91b85
jmp 0x10004476
xor eax, eax
mov cx, word [esp + 0x2a]
sub ax, 0xffff
sub cx, ax
mov word [esp + 0x2a], cx
cmp cx, 0
mov eax, 0xa7ddc24b
mov ecx, 0xb098ef4f
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
cmp dword [esp + 0x1c], 0x6a4abc5b
mov eax, 0x7950c260
mov ecx, 0xb48c55b6
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
movzx eax, word [esp + 0x2a]
cmp eax, 0
mov eax, 0x73077f6c
mov ecx, 0x40ac459f
cmovg ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
cmp dword [esp + 0x44], 0x91afca54
mov eax, 0x4088644b
mov ecx, 0xa43cf373
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
cmp dword [esp + 0x44], 0x7946c61b
mov eax, 0x4088644b
mov ecx, 0x513e28c1
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
sub eax, 0x8f03efac
add eax, ecx
add eax, 0x8f03efac
mov dword [esp + 0x60], eax
mov dword [esp + 0x10], 0x6a386d38
jmp 0x10004476
cmp dword [esp + 0x44], 0x91afca54
mov eax, 0x8a85343
mov ecx, 0x2d1ddf67
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
add eax, 0x33d24b61
add eax, ecx
sub eax, 0x33d24b61
mov dword [esp + 0x5c], eax
mov dword [esp + 0x10], 0xe1ed07c7
jmp 0x10004476
mov dword [esp + 0x10], 0x2e455637
jmp 0x10004476
mov dword [esp + 0x10], 0x6a386d38
jmp 0x10004476
xor eax, eax
mov cx, word [esp + 0x2a]
sub ax, 0xffff
sub cx, ax
mov word [esp + 0x2a], cx
mov dword [esp + 0x10], 0x513e28c1
jmp 0x10004476
cmp dword [esp + 0x1c], 0x3cfa685d
mov eax, 0xf15045eb
mov ecx, 0x64fa60b9
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 0x3c]
sub ecx, 0x199612bc
add ecx, edx
add ecx, 0x199612bc
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x38]
add ecx, 0x18
add ecx, 0x60
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov edx, dword [edx]
add ecx, 0xa9116931
add ecx, edx
sub ecx, 0xa9116931
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
mov edx, dword [edx + 0x20]
xor esi, esi
sub esi, edx
sub ecx, esi
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
mov edx, dword [edx + 0x24]
xor esi, esi
sub esi, ecx
xor ecx, ecx
sub ecx, edx
add esi, ecx
sub eax, esi
mov dword [esp + 0x4c], eax
mov word [esp + 0x2a], 1
mov dword [esp + 0x10], 0xea39af8
jmp 0x10004476
movzx eax, word [esp + 0x2a]
cmp eax, 0
mov eax, 0xdadee999
mov ecx, 0x28869216
cmovg ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov edx, dword [edx]
xor esi, esi
sub esi, ecx
xor ecx, ecx
sub ecx, edx
add esi, ecx
xor ecx, ecx
sub ecx, esi
mov edx, 0xd73fe7f3
mov esi, edx
sub esi, 0xd73fe7f3
je 0x100034af
jmp 0x100034a3
mov esi, edx
sub esi, 0x7fb292fa
je 0x100034dd
jmp 0x100034db
xor edx, edx
rol eax, 0x13
movsx esi, byte [ecx]
sub edx, esi
sub eax, edx
mov dword [esp + 0x7c], eax
mov esi, ecx
add esi, 1
cmp byte [ecx + 1], 0
mov eax, 0x7fb292fa
mov edx, 0xd73fe7f3
cmove edx, eax
mov eax, dword [esp + 0x7c]
mov ecx, esi
jmp 0x10003497
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x44], 0x534c0ab8
mov eax, 0x41837160
mov ecx, 0x6007ad68
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
sub eax, 0x285a9377
add eax, ecx
add eax, 0x285a9377
mov dword [esp + 0x54], eax
mov dword [esp + 0x10], 0x782a75a0
jmp 0x10004476
cmp dword [esp + 0x5c], 0
mov eax, 0xcda1f849
mov ecx, 0xd69799db
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
cmp dword [esp + 0x54], 0
mov eax, 0x54c73a36
mov ecx, 0xd69799db
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x47c7efe3
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0xc]
xor esi, esi
sub esi, ecx
xor ecx, ecx
sub ecx, edx
add esi, ecx
sub eax, esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x14]
add eax, 0x98c43f82
add eax, ecx
sub eax, 0x98c43f82
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x6c], 0
mov eax, 0xb608a6dc
mov ecx, 0x26d8a325
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x10], 0x26d8a325
jmp 0x10004476
mov eax, dword [esp + 0x20]
mov dword [esp + 0x68], eax
mov dword [esp + 0x10], 0xa42fd0c2
jmp 0x10004476
mov dword [esp + 0x10], 0x3cf742e7
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x1c]
xor edx, edx
sub edx, ecx
xor esi, esi
sub esi, 1
add edx, esi
xor esi, esi
sub esi, edx
mov dword [esp + 0x1c], esi
mov cl, byte [ecx]
mov edx, dword [esp + 0x2c]
xor esi, esi
sub esi, edx
xor edi, edi
sub edi, 1
add esi, edi
sub eax, esi
mov dword [esp + 0x2c], eax
mov byte [edx], cl
mov dword [esp + 0x10], 0x3cf742e7
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x18]
sub eax, 0x28
sub ecx, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], 0x6dbcdb1f
jmp 0x10004476
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 0xc]
add ecx, 0xd50ca75a
add ecx, edx
sub ecx, 0xd50ca75a
mov dword [esp], ecx
call eax
sub esp, 4
xor ecx, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov edx, dword [edx]
xor esi, esi
sub esi, edx
sub eax, esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 0x10]
sub ecx, edx
sub eax, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0xf3f01f3e
jmp 0x10004476
mov eax, dword [esp + 0x18]
cmp dword [eax], 0
mov eax, 0x1a718a4
mov ecx, 0x5139747f
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
cmp dword [esp + 0x20], 0
mov eax, 0x683ba942
mov ecx, 0xfee53c12
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov edx, dword [edx + 0x3c]
add ecx, 0xd62e6820
add ecx, edx
sub ecx, 0xd62e6820
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x38]
add ecx, 0x18
add ecx, 0x60
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
mov edx, dword [edx]
xor esi, esi
sub esi, ecx
xor ecx, ecx
sub ecx, edx
add esi, ecx
xor ecx, ecx
sub ecx, esi
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
mov edx, dword [edx + 0x1c]
xor esi, esi
sub esi, ecx
xor ecx, ecx
sub ecx, edx
add esi, ecx
xor ecx, ecx
sub ecx, esi
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
mov edx, 0xffffffff
xor edx, 0xffff
mov esi, ecx
xor esi, edx
and esi, ecx
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx + 0x10]
add esi, 0xfa69725a
sub esi, ecx
sub esi, 0xfa69725a
shl esi, 2
mov ecx, dword [esp + 0x3c]
xor edx, edx
sub edx, ecx
xor ecx, ecx
sub ecx, esi
add edx, ecx
xor ecx, ecx
sub ecx, edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
sub eax, edx
sub ecx, eax
mov eax, dword [esp + 0x18]
mov dword [eax], ecx
mov dword [esp + 0x10], 0x91680134
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
sub eax, edx
sub ecx, eax
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x2c]
add ecx, 2
mov edx, dword [esp + 0x24]
mov dword [esp], edx
mov dword [esp + 4], ecx
call eax
sub esp, 8
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov dword [esp + 0x10], 0x91680134
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x18]
xor edx, edx
sub edx, ecx
xor ecx, ecx
sub ecx, 4
add edx, ecx
sub eax, edx
mov dword [esp + 0x18], eax
cmp dword [esp + 0x20], 0
mov eax, 0x7b08923b
mov ecx, 0xdf9031ca
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov dword [esp + 0x10], 0xf3f01f3e
jmp 0x10004476
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 0x34]
add eax, 0x3018726c
sub eax, ecx
sub eax, 0x3018726c
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
add eax, 0x18
add eax, 0x60
add eax, 0x28
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
cmp dword [eax + 4], 0
mov eax, 0x68b55ea0
mov ecx, 0x3d195ea2
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov eax, dword [esp + 0x20]
mov ax, word [eax]
shr ax, 0xc
movzx eax, ax
cmp eax, 0xa
mov eax, 0xa1e7c680
mov ecx, 0x56d124b8
cmove ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov si, word [esi]
xor si, 0xffff
mov di, 0xffff
mov bx, 0xffff
xor bx, 0xfff
xor di, 0x9e8e
or si, bx
or di, 0x9e8e
xor si, 0xffff
and si, di
movzx esi, si
sub eax, esi
sub edx, eax
mov eax, dword [edx]
sub eax, 0x6cbc8c82
add eax, ecx
add eax, 0x6cbc8c82
mov dword [edx], eax
mov dword [esp + 0x10], 0xdb84ccc
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov si, word [esi]
mov di, 0xffff
xor di, 0xfff
mov bx, si
xor bx, di
and bx, si
movzx esi, bx
xor edi, edi
sub edi, edx
xor edx, edx
sub edx, esi
add edi, edx
xor edx, edx
sub edx, edi
mov esi, dword [edx]
sub eax, ecx
sub esi, eax
mov dword [edx], esi
mov dword [esp + 0x10], 0xe4062ada
jmp 0x10004476
mov eax, dword [esp + 0x24]
xor eax, 0xffffffff
mov ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xffff
xor ecx, 0xbe88b01c
or eax, edx
or ecx, 0xbe88b01c
xor eax, 0xffffffff
and eax, ecx
movzx eax, ax
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov dx, word [edx]
mov si, 0xffff
xor si, 0xfff
mov di, dx
xor di, si
and di, dx
movzx edx, di
sub ecx, 0x4284a1d9
add ecx, edx
movzx edx, word [ecx + 0x4284a1d9]
add edx, 0x9a408db
add edx, eax
sub edx, 0x9a408db
mov word [ecx + 0x4284a1d9], dx
mov dword [esp + 0x10], 0x96c2b5f
jmp 0x10004476
mov dword [esp + 0x10], 0x55b5f366
jmp 0x10004476
mov dword [esp + 0x10], 0xdb84ccc
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x20]
sub eax, 2
sub ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], 0x331ada8d
jmp 0x10004476
xor eax, eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 4]
xor esi, esi
sub esi, ecx
xor ecx, ecx
sub ecx, edx
add esi, ecx
sub eax, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 0x3fba559b
jmp 0x10004476
mov dword [esp + 0x10], 0x3d195ea2
jmp 0x10004476
xor eax, eax
mov cx, word [esp + 0x52]
sub ax, 0xffff
mov dx, cx
sub dx, ax
mov word [esp + 0x52], dx
cmp cx, 0
mov eax, 0x1e90d4a8
mov ecx, 0x70e7f1c1
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov dword [esp + 0x48], 8
mov dword [esp + 0x10], 0xc58b8caa
jmp 0x10004476
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x24]
mov ecx, 0xffffffff
xor ecx, 0x40000000
mov edx, eax
xor edx, ecx
and edx, eax
cmp edx, 0
mov eax, 0xc254cf82
mov ecx, 0xb13fe47a
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov dword [esp + 0x48], 2
mov dword [esp + 0x10], 0xb13fe47a
jmp 0x10004476
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x24]
mov ecx, 0xffffffff
xor ecx, 0x80000000
mov edx, eax
xor edx, ecx
and edx, eax
cmp edx, 0
mov eax, 0x272706d3
mov ecx, 0xe1702882
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x24]
xor eax, 0xffffffff
mov ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x20000000
xor ecx, 0x3be79c3b
or eax, edx
or ecx, 0x3be79c3b
xor eax, 0xffffffff
and eax, ecx
cmp eax, 0
mov eax, 0x9259c35b
mov ecx, 0x8e235c9c
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov dword [esp + 0x48], 0x10
mov dword [esp + 0x10], 0x8e235c9c
jmp 0x10004476
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x24]
xor eax, 0xffffffff
mov ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x20000000
xor ecx, 0xbdcebe1b
or eax, edx
or ecx, 0xbdcebe1b
xor eax, 0xffffffff
and eax, ecx
cmp eax, 0
mov eax, 0x8947700c
mov ecx, 0x51fc0391
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x24]
xor eax, 0xffffffff
mov ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x80000000
xor ecx, 0xabc46744
or eax, edx
or ecx, 0xabc46744
xor eax, 0xffffffff
and eax, ecx
cmp eax, 0
mov eax, 0xe5ca37e5
mov ecx, 0x51fc0391
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov dword [esp + 0x48], 0x80
mov dword [esp + 0x10], 0x51fc0391
jmp 0x10004476
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x24]
xor eax, 0xffffffff
mov ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x40000000
xor ecx, 0x59bea8d8
or eax, edx
or ecx, 0x59bea8d8
xor eax, 0xffffffff
and eax, ecx
cmp eax, 0
mov eax, 0xb799e4db
mov ecx, 0xc352e20d
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
mov dword [esp + 0x48], 0x20
mov dword [esp + 0x10], 0xc352e20d
jmp 0x10004476
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x24]
xor eax, 0xffffffff
mov ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x20000000
xor ecx, 0xc46f7850
or eax, edx
or ecx, 0xc46f7850
xor eax, 0xffffffff
and eax, ecx
cmp eax, 0
mov eax, 0x1ab9d3c5
mov ecx, 0x5064aa03
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x10004476
xor eax, eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0x8000
call eax
sub esp, 0xc
mov dword [esp + 0x10], 0x5ee19283
jmp 0x10004476
jmp 0x100025eb